又是给新机器搭建环境,编译环境依赖、扩展太多了记不住,就需要找些帖子,找来找去挺麻烦的,就自己做一个记载,就不用到处找了。
一:安装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是配置文件目录,可以根据自己的需要放置自定义目录;我这里安装的扩展比较多,大家可以根据自己需要选择扩展。
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。