Centos 自己动手搭建 LNMP 网站运行环境

2016-10-24 • 学习心得暂无评论

上次使用 OneinStack 一键部署了 lnmp
这次我们自己动手安装 lnmp 环境
以下教程仅供个人学习记录,在此期间参考了 下站见 的安装教程

准备工作

1.查看环境

[root@SKY-YUN ~]# cat /etc/redhat-release
CentOS release 6.8 (Final)

本机在这里使用的是 Centos 6.8
2.配置防火墙,开启80端口、3306端口
rm -rf /etc/sysconfig/iptables 删除原先的防火墙配置
vi /etc/sysconfig/iptables 添加如下内容

########################### 添加之后防火墙规则如下所示 ##############################
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
#######################################################################################

输入:wq保存退出,重启防火墙使配置生效
service iptables restart
3.关闭SELINUX

   vi /etc/selinux/config
   #SELINUX=enforcing       #注释掉
   #SELINUXTYPE=targeted    #注释掉
   SELINUX=disabled         #增加
   :wq  #保存退出
   shutdown -r now   #重启系统

4.配置环境
yum -y groupinstall "Development Tools" 安装开发者工具包
yum install epel-release
yum update 系统升级到最新

开始安装

lnmp 即是 linux 系统下 Nginx、Mysql、PHP 环境的简称
nginx 和 mysql 我们采用 YUM 安装 速度很快 可以直接 yum 升级版本
PHP 我们采用编译安装

一、安装 Nginx (Yum安装)

1.配置第三方 yum 源(CentOS默认的标准源里没有 nginx 软件包,我们自己从官网装最新的)
在 Nginx 官网 http://nginx.org/en/linux_packages.html#stable 找到链接,安装:
rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
查看刚刚配置的 nginx

[root@SKY-YUN ~]# yum info nginx 
Available Packages
Name        : nginx
Arch        : x86_64
Version     : 1.10.2
Release     : 1.el6.ngx
Size        : 825 k
Repo        : nginx

2.安装 nginx
yum install nginx
等待安装完成、这个时候我们启动 nginx 服务
service nginx start
此时我们直接访问 ip 应该能打开 nginx 安装成功的页面了
QQ截图20161024193642 (1).png

我们还可以在 nginx 的配置文件 /etc/nginx/nginx.confhttp {} 内加入一行
server_tokens off; 以关闭 nginx 显示版本号提升安全
3.将 nginx 设为开机启动
chkconfig nginx on
4.重启 nginx
service nginx restart

二、安装 Mysql 数据库 (Yum安装)

1.先从官网查看适合你系统的仓库
http://dev.mysql.com/downloads/repo/yum/
这里我 centos 6 对应的是 mysql57-community-release-el6-9.noarch.rpm
然后我们下载对应的仓库
rpm -Uvh http://repo.mysql.com/xxxx.rpm # xxx替换为上面的地址
2.下载完成后将 Yum 库导入到你的本地
sudo yum localinstall mysql57-community-release-el6-9.noarch.rpm
使用这个命令可以查看安装列表
yum repolist enabled | grep "mysql.*-community.*"
我们可以看到这个 Yum 库包含了MySQLServer,MySQL工作台管理工具以及ODBC驱动,这里我们全部安装
3.现在可以通过下面的命令简单地安装 MySQLServer ,这样我们就安装了最新的 Mysql
sudo yum install mysql-community-server

Installed:
  mysql-community-libs.x86_64 0:5.7.16-1.el6             mysql-community-server.x86_64 0:5.7.16-1.el6            
Dependency Installed:
  mysql-community-client.x86_64 0:5.7.16-1.el6            mysql-community-common.x86_64 0:5.7.16-1.el6           
Replaced:
  mysql-libs.x86_64 0:5.1.73-7.el6                                                                               
Complete!

出现这个页面即是安装完成
可以见到 yum 这种安装方式无需手工编译安装,同时也将确保导入相关依赖库,这些都将使我们的安装过程简单化。
4.现在通过以下命令打开 mysql 服务

[root@SKY-YUN packages]# service mysqld start
Initializing MySQL database:                               [  OK  ]
Installing validate password plugin:                       [  OK  ]
Starting mysqld:                                           [  OK  ]

5.设置开机自动启动
chkconfig mysqld on

6.设置 mysql 密码
首先 Mysql 首次安装已经生成了一个密码 我们输入
grep "password" /var/log/mysqld.log
找到这一行 [Note] A temporary password is generated for root@localhost:xxxxxx
xxxxxx 即是默认生成的密码
然后我们使用 xxxxxx 登陆 mysql
mysql -u root -p
会提示我们输入密码 Enter password: 这个时候输入的密码是不显示的 建议直接复制粘贴
登陆成功会提示 Welcome to the MySQL monitor. 的提示页面
之后我们直接在 mysql 控制台输入以下代码来更改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
可能会提示
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
这个意思就是 密码强度太弱 推荐使用强密码
如果想关闭弱密码检查 更改配置文件
vi /etc/my.cnf
[mysqld]字段加入validate-password=OFF 然后重启 Mysql service mysqld restart 即可

三、安装 PHP7 (编译安装)

世界上最好的语言 终于出 php7 了

1.首先配置 PHP 所需要依赖包
yum install libxml2-devel freetype curl curl-devel libpng-devel libjpeg libjpeg-devel libmcrypt freetype-devel libmcrypt-devel libxslt libxslt-devel

2.去 PHP 官网下载最新的 PHP7
官网下载:http://www.php.net/downloads.php
wget http://cn2.php.net/distributions/php-7.0.12.tar.gz
然后解压压缩包
tar zxvf php-7.0.12.tar.gz
cd php-7.0.12 进入解压的 PHP 文件夹

3.开始安装
安装 PHP

./configure --prefix=/usr/local/php7 --exec-prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --with-zlib-dir --with-mhash --with-mcrypt --with-openssl-dir --with-jpeg-dir --enable-gd-jis-conv --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip --disable-fileinfo

编译 PHP
make && make install

4.添加 PHP 环境
编辑文件
vim /etc/profile
在文件的最后加入 export PATH="/usr/local/php7/bin:$PATH"
然后 source /etc/profile
这时候我们就能查看 PHP 版本了

[root@SKY-YUN php-7.0.12]# php -v
PHP 7.0.12 (cli) (built: Oct 24 2016 23:49:17) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

5.配置 PHP
复制一些配置文件
cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf

cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

给 php-fpm 权限
chmod +x /etc/init.d/php-fpm
启动 php-fpm 服务
service php-fpm start
设置 php-fpm 开机自启
chkconfig php-fpm on

配置 lnmp 环境

1.链接 php 与 nginx

打开 nginx 的配置文件
vi /etc/nginx/conf.d/default.conf
去掉以下代码前面的#注释

location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
    include        fastcgi_params;
}

重启 nginx 服务器
service nginx restart
在防火前添加 端口
iptables -I INPUT -p tcp --dport 9000 -j ACCEPT
保存防火墙设置
service iptables save
重启防火墙
service iptables restart

2.链接 mysql 与 php

编辑 php 配置文件
/usr/local/php7/etc/php.ini
pdo_mysql.default_socket=mysqli.default_socket =后面加上/var/lib/mysql/mysql.sock
即是

pdo_mysql.default_socket= /var/lib/mysql/mysql.sock
mysqli.default_socket= /var/lib/mysql/mysql.sock

然后我们可以在/usr/share/nginx/html下新建个php文件试试
vi /usr/share/nginx/html/sky.php
在头部插入
<?php phpinfo();?>
即可显示 php 版本信息

为了安全我们需要关闭网页头部 php 版本信息
编辑/usr/local/php7/etc/php.iniexpose_php = On改成Off重启即可。

到此我们的 lnmp 环境 应该配置完成了
完结撒花~

发表评论