共计 9008 个字符,预计需要花费 23 分钟才能阅读完成。
环境是 CentOS 7 64bit,Updated 9 July 2014。512M 内存虚拟机。
先更新下系统:
[root@linuxidc ~]# yum update -y
安装必要软件:
[root@linuxidc ~]# yum install gcc automake autoconf libtool make gcc-c++ zlib-devel openssl-devel vim which bzip2 -y
编译安装 pcre:
[root@linuxidc ~]# cd /usr/local/src/[root@linuxidc src]# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.35.tar.gz[root@linuxidc src]# tar zvxf pcre-8.35.tar.gz[root@linuxidc src]# cd pcre-8.35[root@linuxidc pcre-8.35]#./configure[root@linuxidc pcre-8.35]# make && make install
编译安装 openssl:
[root@linuxidc pcre-8.35]# cd /usr/local/src/[root@linuxidc src]# wget http://www.openssl.org/source/openssl-1.0.1h.tar.gz[root@linuxidc src]# tar zvxf openssl-1.0.1h.tar.gz[root@linuxidc src]# cd openssl-1.0.1h[root@linuxidc openssl-1.0.1h]#./config[root@linuxidc openssl-1.0.1h]# make && make install
编译安装 zlib
[root@linuxidc openssl-1.0.1h]# cd /usr/local/src/[root@linuxidc src]# wget http://zlib.net/zlib-1.2.8.tar.gz[root@linuxidc src]# tar zvxf zlib-1.2.8.tar.gz[root@linuxidc src]# cd zlib-1.2.8[root@linuxidc zlib-1.2.8]#./configure[root@linuxidc zlib-1.2.8]# make && make install
编译安装 jemalloc:
[root@linuxidc zlib-1.2.8]# cd /usr/local/src/[root@linuxidc src]# wget http://www.canonware.com/download/jemalloc/jemalloc-3.6.0.tar.bz2[root@linuxidc src]# tar jxvf jemalloc-3.6.0.tar.bz2[root@linuxidc src]# cd jemalloc-3.6.0[root@linuxidc jemalloc-3.6.0]#./configure[root@linuxidc jemalloc-3.6.0]# make && make install[root@linuxidc jemalloc-3.6.0]# echo '/usr/local/lib'>/etc/ld.so.conf.d/local.conf[root@linuxidc jemalloc-3.6.0]# ldconfig建立 www 用户组和用户,禁止 www 登陆shell:[root@linuxidc jemalloc-3.6.0]# groupadd www[root@linuxidc jemalloc-3.6.0]# useradd -g www www[root@linuxidc jemalloc-3.6.0]# usermod -s /sbin/nologin www
创建虚拟主机使用目录,并赋予相应权限:
[root@linuxidc jemalloc-3.6.0]# mkdir -p /usr/www/example.com/{public_html,logs}[root@linuxidc jemalloc-3.6.0]# chmod -R +w /usr/www/[root@linuxidc jemalloc-3.6.0]# chown -R www:www /usr/www/
编译安装 Tengine:
[root@linuxidc jemalloc-3.6.0]# cd /usr/local/src/[root@linuxidc src]# wget http://tengine.taobao.org/download/tengine-2.0.3.tar.gz[root@linuxidc src]# tar zvxf tengine-2.0.3.tar.gz[root@linuxidc src]# cd tengine-2.0.3[root@linuxidc tengine-2.0.3]#./configure --prefix=/usr/local/nginx--user=www --group=www--with http_stub_status_module--with-http_ssl_module--with-http_gzip_static_module--with-openssl=/usr/local/src/openssl-1.0.1h--with-zlib=/usr/local/src/zlib-1.2.8--with-pcre=/usr/local/src/pcre-8.35--with-jemalloc[root@linuxidc tengine-2.0.3]# make && make install
修改 nginx.conf 文件:
[root@linuxidc tengine-2.0.3]# mkdir /usr/local/nginx/conf/domains[root@linuxidc tengine-2.0.3]# vim /usr/local/nginx/conf/nginx.conf
修改
#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024;}
为
user www www;worker_processes 4;error_log logs/error.log crit;#error_log logs/error.log notice;#error_log logs/error.log info;pid logs/nginx.pid;events {use epoll;worker_connections 65535;}
修改
http {include mime.types;default_type application/octet-stream;
为
http {include mime.types;include domains/*.conf;default_type application/octet-stream;
:wq 保存
测试 Nginx:
[root@linuxidc tengine-2.0.3]# cd /usr/local/nginx[root@linuxidc nginx]# ldconfig[root@linuxidc nginx]#./sbin/nginx -t
输出
the configuration file /usr/local/nginx/conf/nginx.conf syntax is okconfiguration file /usr/local/nginx/conf/nginx.conf test is successful
测试成功
添加 Nginx 到开机自动启动:
[root@linuxidc nginx]# vim /usr/lib/systemd/system/nginx.service
加入
[
Unit]Description=The nginx HTTP and reverse proxy serverAfter=syslog.target network.target remote-fs.target nss-lookup.target[Service]Type=forkingPIDFile=/usr/local/nginx/logs/nginx.pidExecStartPre=/usr/local/nginx/sbin/nginx -tExecStart=/usr/local/nginx/sbin/nginxExecReload=/bin/kill -s HUP $MAINPIDExecStop=/bin/kill -s QUIT $MAINPIDPrivateTmp=true[Install]WantedBy=multi-user.target
:wq 保存
[root@linuxidc nginx]# systemctl enable nginx
关闭默认防火墙:
[root@linuxidc nginx]# systemctl stop firewalld.service[root@linuxidc nginx]# systemctl disable firewalld.service
安装 iptables 并开启 80 端口
[root@linuxidc nginx]# yum install iptables-services -y[root@linuxidc nginx]# vim /etc/sysconfig/iptables
增加
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80-j ACCEPT
因为这台 VPS 的 SSH 端口为 60000,修改
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22-j ACCEPT
为
-A INPUT -p tcp -m state --state NEW -m tcp --dport 60000-j ACCEPT
:wq 保存
重启 iptables 并设定开机自动启动:
[root@linuxidc nginx]# systemctl restart iptables.service[root@linuxidc nginx]# systemctl enable iptables.service
安装 MariaDB:
[root@linuxidc nginx]# cd /etc/yum.repos.d/[root@linuxidc yum.repos.d]# vim MariaDB.repo
输入
# MariaDB 10.0 CentOS repository list - created 2014-09-30 09:33 UTC# http://mariadb.org/mariadb/repositories/[mariadb]name =MariaDBbaseurl = http://yum.mariadb.org/10.0/centos7-amd64gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1
:wq 保存
[root@linuxidc yum.repos.d]# yum install MariaDB-server MariaDB-client -y
报错,存在冲突包,删除之
[root@linuxidc yum.repos.d]# rpm -ev net-snmp-1:5.7.2-18.el7.x86_64[root@linuxidc yum.repos.d]# rpm -ev mariadb-libs-1:5.5.37-1.el7_0.x86_64
再安装
[root@linuxidc yum.repos.d]# yum install MariaDB-server MariaDB-client -y
成功
启动 MariaDB 服务并添加开机自动启动:
[root@linuxidc yum.repos.d]# service start mysql[root@linuxidc yum.repos.d]# chkconfig mysql on
安装编译 PHP 的必要应用:
[root@linuxidc yum.repos.d]# yum install -y gcc gcc-c++ autoconf libjpeg libjpeg-devel libpnglibpng-devel freetype freetype-devel libpng libpng-devellibxml2 libxml2-devel zlib zlib-devel glibc glibc-develglib2 glib2-devel bzip2 bzip2-devel ncurses curl openssl-develgdbm-devel db4-devel libXpm-devel libX11-devel gd-develgmp-devel readline-devel libxslt-devel expat-devel xmlrpc-c xmlrpc-c-devel file
编译安装 libmcrypt:
[root@linuxidc yum.repos.d]# cd /usr/local/src/[root@linuxidc src]# wget https://vps.googlecode.com/files/libmcrypt-2.5.8.tar.gz[root@linuxidc src]# tar zxvf libmcrypt-2.5.8.tar.gz[root@linuxidc src]# cd libmcrypt-2.5.8[root@linuxidc libmcrypt-2.5.8]#./configure[root@linuxidc libmcrypt-2.5.8]# make && make install
编译安装 PHP:
[root@linuxidc libmcrypt-2.5.8]# cd /usr/local/src/[root@linuxidc src]# wget http://cn2.php.net/distributions/php-5.6.0.tar.gz[root@linuxidc src]# tar zxvf php-5.6.0.tar.gz[root@linuxidc src]# cd php-5.6.0[root@linuxidc php-5.6.0]#./configure --prefix=/usr/local/php-5.6.0--with-mysql --with-mysql-sock--with-mysqli --enable-fpm --enable-soap--with-libxml-dir --with-openssl --with-mcrypt--with-mhash --with-pcre-regex --with-sqlite3--with-zlib --enable-bcmath--with-iconv --with-bz2 --enable-calendar--with-curl --with-cdb --enable-dom --enable-exif --enable-fileinfo --enable-filter--with-pcre-dir --enable-ftp --with-gd --with-openssl-dir--with-jpeg-dir --with-png-dir --with-zlib-dir--with-freetype-dir --enable-gd-native-ttf --enable-gd-jis-conv--with-gettext --with-gmp --with-mhash --enable-json --enable-mbstring--disable-mbregex --disable-mbregex-backtrack --with-libmbfl--with-onig --enable-pdo --with-pdo-mysql --with-zlib-dir--with-pdo-sqlite --with-readline --enable-session --enable-shmop--enable-simplexml --enable-sockets --enable-sysvmsg --enable-sysvsem--enable-sysvshm --enable-wddx --with-libxml-dir --with-xsl --enable-zip--enable-mysqlnd-compression-support --with-pear --disable-fileinfo
因为只有 512M 内存所以加了 –disable-fileinfo,不然编译会报错
[root@linuxidc php-5.6.0]# make && make install
复制配置文件:
[root@linuxidc php-5.6.0]# cp /usr/local/php-5.6.0/etc/php-fpm.conf.default/usr/local/php-5.6.0/etc/php-fpm.conf[root@linuxidc php-5.6.0]# cp /usr/local/src/php-5.6.0/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm[root@linuxidc php-5.6.0]# cp /usr/local/src/php-5.6.0/php.ini-production /usr/local/php-5.6.0/lib/php.ini
修改配置文件:
[root@linuxidc php-5.6.0]# vim /usr/local/php-5.6.0/etc/php-fpm.conf
找到这些值修改
pm.max_children =50pm.start_servers =20pm.min_spare_servers =5pm.max_spare_servers =35
去掉
;pm.max_requests =500
的注释,然后
:wq 保存
设置 php-fpm 开机自动启动
[root@linuxidc php-5.6.0]# chmod a+x /etc/init.d/php-fpm[root@linuxidc php-5.6.0]# chkconfig php-fpm on
将 PHP 的 bin 目录加入环境变量:
[root@linuxidc php-5.6.0]# chmod +x /etc/profile[root@linuxidc php-5.6.0]# vim /etc/profile.d/php.sh
加入
PATH=$PATH:/usr/local/php5.6.0/binexport PATH
:wq 保存
[root@linuxidc php-5.6.0]# chmod +x /etc/profile.d/php.sh[root@linuxidc php-5.6.0]# source /etc/profile[root@linuxidc php-5.6.0]# ln -s /usr/local/php-5.6.0/sbin/php-fpm /bin/php-fpm
创建网站配置文件:
[root@linuxidc php-5.6.0]# vim /usr/local/nginx/conf/domains/example.com.conf
输入
server {server_name example.com;listen 80;root /usr/www/example.com/public_html;access_log /usr/www/example.com/logs/access.log;error_log /usr/www/example.com/logs/error.log;index index.php;location /{try_files $uri $uri//index.php?q=$uri&$args;}location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {access_log off;expires max;}location ~/\.ht {deny all;}location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include /usr/local/nginx/conf/fastcgi_params;}}
:wq 保存
重启 VPS:
[root@linuxidc php-5.6.0]# reboot
相关阅读:
CentOS 6.4 制作 Tengine 的 rpm 包 http://www.linuxidc.com/Linux/2013-12/93786.htm
Tengine 动态开启模块试用 http://www.linuxidc.com/Linux/2012-12/75849.htm
CentOS 6.3 用 ICC 编译 PHP5.4.8+Percona5.5.27+Tengine1.4.1 http://www.linuxidc.com/Linux/2012-12/76636.htm
基于淘宝 Tengine 和 Scribe 的 WEB 日志收集方案 http://www.linuxidc.com/Linux/2012-02/52997.htm
基于 Tengine 部署 LNMP 环境 http://www.linuxidc.com/Linux/2014-01/95148.htm
Tengine 的详细介绍:请点这里
Tengine 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-09/123051.htm






