天天看点

Linux CentOS 6编译安装Nginx、PHP、MySQL

又是给新机器搭建环境,编译环境依赖、扩展太多了记不住,就需要找些帖子,找来找去挺麻烦的,就自己做一个记载,就不用到处找了。

一:安装Nginx

1、创建用户和用户组

groupadd nginx

useradd -g nginx -s /sbin/nologin nginx

2、安装编译环境

yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers gd gd2 gd-devel gd2-devel perl-CPAN pcre-devel libicu-devel libxslt-devel

3、下载Nginx安装包

http://nginx.org/en/download.html, 选择 stable 版本下载最新稳定版

4、解压

tar zxvf nginx.****.tar.gz

cd nginx.****

5、配置编译参数

./configure --prefix=/指定安装目录 --with-prce=/prce的安装目录

make && make install

6、启动Nginx

/安装目录/sbin/nginx

Tips:启动后测试连接是否成功,不成功的话,检查下Nginx进程是否启动了,再就是防火墙(开发测试机可以关闭防火墙

service iptables stop

)

二:安装MySQL

1、下载安装包,解压

wget http://mysql.mirror.kangaroot.net/Downloads/MySQL-5.6/mysql-5.6.26.tar.gz

tar -zxvf mysql-5.6.26.tar.gz

2、创建用户及组

sudo groupadd mysql

sudo useradd -g mysql mysql -s /bin/false

创建安装目录和数据存放目录,并修改权限

sudo mkdir -p /usr/local/mysql/data

sudo chown -R mysql:mysql /usr/local/mysql

cd mysql-5.6.26/

rm CMakeCache.txt

,存在这个文件就删除

cmake编译

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_DEBUG=0
           

make && make install

修改安装完成后文件的所有者和组

sudo chown -R mysql:mysql /usr/local/mysql

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

sudo vim /etc/my.cnf

basedir = /usr/local/mysql/
datadir = /usr/local/mysql/data
socket = /tmp/mysql.sock
           

将启动和cli脚本软连接到系统变量

ln -s /usr/local/mysql/bin/mysql /usr/bin
ln -s /usr/local/mysql/bin/mysqladmin /usr/bin
ln -s /usr/local/mysql/support-files/mysql.server /usr/bin
           

初始化数据库,创建基本数据库

sudo /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --no-defaults
           

启动服务

mysql.server start

./mysqld_safe --user=mysql &

开机启动

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql.server

为root用户创建密码

/usr/local/mysql/bin/mysqladmin -u root password '123'

查看启动进程

netstat -lntup | grep 3306

登录MySQL服务器

mysql -uroot -p

三:安装PHP

1、创建用户和用户组

useradd -r -s /sbin/nologin php-fpm

2、安装编译环境

上面在安装Nginx的时候已经都安装了

3、下载并解压

wget http://php.net/get/php-7.2.2.tar.gz/from/this/mirror

mv mirror php-7.2.2.tar.gz

tar zxvf php-7.2.2.tar.gz

cd php-7.2.2

Tips:这里你要安装哪个版本就选择相应版本下载,我这里下载的是7.2

4、配置编译参数

./configure --prefix=/usr/local/php-7.2 --with-mhash --with-openssl --with-config-file-path=/usr/local/php-7.2/etc --disable-short-tags --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --enable-xml --with-libxml-dir --enable-bcmath --enable-calendar --enable-intl --enable-mbstring --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-zip --enable-mbregex --enable-mysqlnd --enable-mysqlnd-compression-support --with-mysqli=mysqlnd --with-mysql=mysql --with-pdo-mysql=mysqlnd --with-gd --enable-ftp --with-curl --with-xsl --with-iconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --enable-sysvsem --enable-inline-optimization --with-xmlrpc --with-gettext

Tips:

1.编译参数各项代表什么需要自己去查一下,prefix是安装目录,with-config-file是配置文件目录,可以根据自己的需要放置自定义目录;我这里安装的扩展比较多,大家可以根据自己需要选择扩展。

2.PHP编译安装时常见错误解决办法,php编译常见错误

make && make install

接下来耐心等待就好了,编译和安装时间有点长,如果没有报错就可以进入下一步了。

5、备份配置文件

cd /usr/local/php**

cp ./etc/php-fpm.conf.default ./etc/php-fpm.conf

cp ./php.ini-development /etc/php.ini

设置软链接

ln -s /usr/local/php-7.2.2/ /usr/local/php

ln -s /usr/local/php/bin/php /usr/local/bin

ln -s /usr/local/php/sbin/php-fpm /usr/local/sbin

配置环境变量,加入全局命令

vim /etc/profile

PATH=$PATH:/usr/local/php/bin

export PATH

source /etc/profile

进入PHP安装目录etc/php-fpm.d

cp www.conf.default www.conf

6、启动PHP-FPM

./sbin/php-fpm

查看是否启动

netstat -lnt | grep 9000

杀到进程

killall php-fpm

7、整合PHP和Nginx的通信

vim /usr/local/nginx/conf/nginx.conf

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

把conf文件的CGI监听模块的注释取消了,fast_pass选项既可以用TCP模式通信,也可以用Unix套接字通信。然后重载Nginx配置就可以了,

/usr/local/nginx/sbin/nginx -s reload

Tips:以上我均在root权限下操作,若提示无权限可自行命令前加上sudo。