服务器环境:阿里云ECS

Linux发行版本:CentOS 7

安装软件:Mysql-Server Memcached Redis Nginx PHP

需要注意的要点:

1、依赖库需要优先安装如zlib,openssl,pcre等,PHP放在最后安装。

2、不推荐使用yum安装PHP,因为编译PHP的时候有许多参数其实需要自己按需调整,此外自己编译也能理解PHP需要依赖的库。

哟西~前言说到这,让我们赶紧开始吧w

安装依赖库

#zlib 数据压缩库,许多软件都需要使用
yum install zlib
yum install zlib-devel
#libevent 网络库,memcached需要使用
yum install libevent
yum install libevent-devel
#openssl 加密库
yum install openssl
yum install openssl-devel
#tcl脚本库 redis需要
yum install tcl
yum install tcl-devel
#pcre 正则表达式解释库
yum install pcre
yum install pcre-devel
#xml 解析库
yum install libxml2
yum install libxml2-devel
#curl库
yum install libcurl-devel
#mcrypt加密库
yum install mcrypt
#m4 以及 autoconf库,PHP编译扩展时需要用到
yum install m4
yum install m4-devel
yum install autoconf
#memcached库,PHP的memcached扩展需要
yum install libmemcached
yum install libmemcached-devel
#GD 图片处理库
yum install gd
yum install gd-devel
#freetype 字体引擎,PHP GD库需要
yum install freetype
yum install freetype-devel
#libpng PNG图片处理库,PHP GD库需要
yum install libpng
yum install libpng-devel
#libjpeg JPEG图片处理库,PHP GD库需要
wget http://www.ijg.org/files/jpegsrc.v9b.tar.gz
tar xzvf jpegsrc.v9b.tar.gz
cd jpeg-9b
./configure --prefix=/etc/libjpeg
make && make install
cd ..

当然以上有些库可能系统本身就已经安装好了,各位看情况安装即可。

安装mysql

在mysql官网的这个地址可以选择需要的版本:https://downloads.mysql.com/archives/community/

此处使用5.7为例子,只安装需要的包(当然也可以直接安装bundle包)

#阿里云某些centOS自带了mariadb-libs,会跟mysql冲突,先卸载
yum erase mariadb-libs
wget https://downloads.mysql.com/archives/get/file/mysql-community-common-5.7.17-1.el7.x86_64.rpm
rpm -iv mysql-community-common-5.7.17-1.el7.x86_64.rpm
wget https://downloads.mysql.com/archives/get/file/mysql-community-libs-5.7.17-1.el7.x86_64.rpm
rpm -iv mysql-community-libs-5.7.17-1.el7.x86_64.rpm
wget https://downloads.mysql.com/archives/get/file/mysql-community-client-5.7.17-1.el7.x86_64.rpm
rpm -iv mysql-community-client-5.7.17-1.el7.x86_64.rpm
wget https://downloads.mysql.com/archives/get/file/mysql-community-server-5.7.17-1.el7.x86_64.rpm
rpm -iv mysql-community-server-5.7.17-1.el7.x86_64.rpm
wget https://downloads.mysql.com/archives/get/file/mysql-community-devel-5.7.17-1.el7.x86_64.rpm
rpm -iv mysql-community-devel-5.7.17-1.el7.x86_64.rpm

安装nginx

#下载openssl 1.0.2k的源码,用于编译nginx的http2模块时候使用
wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
tar xzvf openssl-1.0.2k.tar.gz
wget http://nginx.org/download/nginx-1.12.0.tar.gz
tar xzvf nginx-1.12.0.tar.gz
cd nginx-1.12.0
mv ../openssl-1.0.2k ./
./configure --prefix=/etc/nginx --sbin-path=/etc/nginx/sbin/nginx --modules-path=/etc/nginx/modules --conf-path=/etc/nginx/conf/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nobody --group=nobody --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre --with-pcre-jit --with-openssl=openssl-1.0.2k
make && make install
cd ..

安装完毕后的nginx会在/etc/nginx目录下~

当然也可以自行修改以上编译参数中的路径将nginx编译到指定的位置去

下载openssl 1.0.2的目的主要是为了编译nginx的http2模块,详细可以参考我的另一篇博文

安装memcached

wget http://memcached.org/files/memcached-1.4.36.tar.gz
tar xzvf memcached-1.4.36.tar.gz
cd memcached-1.4.36
./configure --prefix=/etc/memcached
make && make install
cd ..

安装后的memcached会在/etc/memcached目录下,同理这里也是可以自行修改的~

安装redis

wget http://download.redis.io/releases/redis-3.2.8.tar.gz
tar xzvf redis-3.2.8.tar.gz
cd redis-3.2.8
make
cd ..
mv redis-3.2.8 redis
mv redis /etc/
chmod +x /etc/redis/src/redis-server
chmod +x /etc/redis/src/redis-cli
ln -s /etc/redis/src/redis-cli /usr/bin/redis-cli
ln -s /etc/redis/src/redis-server /usr/bin/redis-server

redis的安装是直接编译以后将目录移动到你想要放置的位置,然后给redis-cli和redis-server加上可执行权限就可以啦~

此处是将redis放到/etc/redis下面,为了方便还做了两个软连接

安装PHP

安装完一大堆依赖以及其他需要用到的软件以后,终于来到安装PHP的环节了~

其实安装PHP除了依赖的库特别多以外,也没什么特别的,也是配置(configure),编译(make),安装(make install)三步走即可~

强烈建议大家安装之前使用./configure --help来仔细看一遍php的编译提供的参数,再来选择自己需要的模块~

此处给出的编译参数只是一个范例~

wget http://am1.php.net/distributions/php-7.1.4.tar.gz
tar xzvf php-7.1.4.tar.gz
cd php-7.1.4
./configure --prefix=/etc/php --enable-fpm --with-openssl --with-pcre-jit --with-zlib --with-curl --with-gd --with-jpeg-dir=/etc/libjpeg --with-png-dir=/usr/include/libpng15 --with-freetype-dir=/usr/include/freetype2/freetype --enable-mbstring --enable-mysqlnd --with-mysqli --with-pdo-mysql --enable-sockets
make && make install
cp php.ini-production /etc/php/lib/php.ini
cd ..

这里将PHP安装到了/etc/php下,并且拷贝了一份预设的php.ini到/etc/php/lib/下~当然啦,路径依然是可以自行修改的,详细参考配置参数。

编译redis以及memcached的PHP扩展

#编译redis扩展
wget http://pecl.php.net/get/redis-3.1.2.tgz
tar xzvf redis-3.1.2.tgz
cd redis-3.1.2
/etc/php/bin/phpize
./configure  --with-php-config=/etc/php/bin/php-config
make && make install
cd ..
#编译memcached扩展
wget http://pecl.php.net/get/memcached-3.0.3.tgz
tar xzvf memcached-3.0.3.tgz
cd memcached-3.0.3/
/etc/php/bin/phpize
./configure  --with-php-config=/etc/php/bin/php-config
make && make install
cd ..

编译好这两个扩展以后,一定不要忘记将这两个扩展添加到php.ini中去哦~

End

好了~软件安装到此结束~至此我们就拥有了一个可以正式进行PHP开发的服务器啦~ww

接下来就是修改PHP和NGINX的配置就完成啦~修改配置的话,网上范例特别多此处就不再赘述(有需要也可以留言,日后可能补上)