2.1.3 linux+php安装

在linux上推荐使用EZHTTP,这是在linux上一键配置http环境的shell脚本,下载地址:https://github.com/centos-bz/EZHTTP
使用EZHTTP可以配置LAMP(Linux+Apache+Mysql+PHP)、LNMP(Linux+Nginx+Mysql+PHP)、LNAMP(Linux+Nginx+Apache+Mysql+PHP)运行环境。
本文内容目录:
1. EZHTTP简介
2. 使用EZHTTP安装LNMP(Nginx + MySQL +  PHP)
3. nginx配置
4. 如何升级nginx
5. 使用EZHTTP单独安装PHP模块
6. 如何使用EZHTTP添加一个虚拟主机
7. 使用EZHTTP开启或关闭PHP共享扩展
8. EZHTTP日常管理

1. EZHTTP简介

EZHTTP是集成了nginx apache php mysql memcached等web服务器软件的一键安装脚本,它能自由选择安装任意的软件,自动选最优线路下载,定制容易。更详细的介绍请转到:www.centos.bz/ezhttp/。
(1)EZHTTP目前可安装的软件有:
LAMP,LNMP,LNAMP,具体是:
nginx、openresty、tegnine (tengine是淘宝基本nginx二次开发的版本,openresty是集成nginx+lua+lua模块的版本,可以开发高性能api服务,没有特殊要求请使用原版)
httpd-2.2.x 、httpd-2.4.x
php-5.2.17、php-5.3.x、php-5.4.x
ZendOptimizer ZendGuardLoader xcache eaccelerator php_imagemagick ionCube memcache php_redis php_mongo apc
mysql-5.1.x、mysql-5.5.x、mysql-5.6.x
memcached, pureftpd, phpmyadmin, redis server, mongodb, phpRedisAdmin, memadmin
(2)支持的系统
理论上支持所有Linux系统,但推荐的系统有centos、ubuntu、debian
(3)相关进程管理及目录位置 
i)进程管理
ii)程序目录
Nginx相关目录  
安装目录 /usr/local/nginx
主配置文件 /usr/local/nginx/conf/nginx.conf
虚拟主机配置文件 /usr/local/nginx/conf/vhost/
   
Apache相关目录  
安装目录 /usr/local/apache
主配置文件 /usr/local/apache/conf/httpd.conf
默认网站配置文件 /usr/local/apache/conf/extra/httpd-vhosts.conf
虚拟主机配置文件 /usr/local/apache/conf/vhost/
   
PHP相关目录  
安装目录 /usr/local/php
php.ini配置文件 /usr/local/php/etc/php.ini
   
MySQL相关目录  
安装目录 /usr/local/mysql
data目录 /usr/local/mysql/data
my.cnf配置文件 /usr/local/mysql/etc/my.cnf
mysql错误日志 /usr/local/mysql/data/mysql-error.log
mysql慢查询日志 /usr/local/mysql/data/mysql-slow.log
   
redis相关目录  
安装目录 /usr/local/redis
配置文件 /usr/local/redis/etc/redis.conf
   
mongodb相关目录  
安装目录 /usr/local/mongodb
配置文件 /usr/local/mongodb/etc/mongod.conf
   
其它目录  
默认网站目录 /home/wwwroot/
日志目录 /home/wwwlog/
phpmyadmin目录 /home/wwwroot/phpmyadmin/
redisadmin目录 /home/wwwroot/redisadmin
memadmin目录 /home/wwwroot/memadmin/
rockmongo目录 /home/wwwroot/rockmongo/

2. 使用EZHTTP安装LNMP(Nginx + MySQL +  PHP)

安装步骤如下:
第1步:EZHTTP安装前准备工作(可选)
使用screen(可选),由于编译安装Nginx Apache PHP MySQL等软件会花费比较长的时间,难免会出现由于网络意外中断而导致安装也中断了,所以为了避免此问题,可以用screen来安装。
screen的使用方法如下:
(1)安装screen
ubuntu/debian系统: apt-get install -y screen
Centos/redhat系统: yum install -y screen
(2)创建screen会话
命令为: screen -S ezhttp
执行这条命令后,会类似新建一个新窗口,接着可以在此窗口继续第二步安装。
(3)ssh断开恢复
如果你已经执行第2步,接着运行了ezhttp安装程序,在安装过程中,突然由于网络原因或者其它原因中断了ssh,你可以重新连接ssh,通过以下命令来恢复之前的窗口:
screen -r ezhttp
第2步:安装LNMP
(1)执行./start.sh,输入1进入LAMP LNMP LANMP选择安装。

(2)输入1选择安装LNMP

(3)选择nginx版本安装
tengine:淘宝基本nginx二次开发的版本
openresty:集成nginx+lua+lua模块的版本,可以开发高性能api服务。
没特殊要求,选择原版就好。

(4)输入nginx安装路径,直接回车则安装在/usr/local/nginx

(5)是否更改nginx编译参数,输入n就行,即不更改

(6)选择mysql版本,一般推荐5.5或者5.6,5.1已经不推荐使用,除非你有充足的理由。

(7)输入mysql安装路径,直接回车则安装在/usr/local/mysql

(8)输入mysql data存放位置,直接回车则存放在所提示的目录,如果你除了根分区,还有其它的数据分区,建议把此目录设置在其它的数据分区,这样可以防止系统损坏时丢失数据。

(9)设置mysql root密码,直接回车则默认为root

(10)是否更改mysql编译参数,一般输入n即可

(11)选择php版本,推荐使用5.2,youdiancms仅支持在php5.2版上运行

(12)输入php安装路径,直接回车则安装在/usr/local/php

(13)是否更改php编译参数,一般输入n

(14)php模块选择安装,如果不清楚需要安装哪些模块,可以只选择xcache,或者不选择.多个选择以空格分隔,如2 3。

(15)其它软件选择安装,多个选择以空格分隔,如 2 3.

(16)设置软件的安装路径,如果是phpmyadmin,建议不要设置,直接回车就行。

(17)确认安装,以下是你之前的所有设置预览,如果确认无误,输入y开始安装,否则输入n重新设置。

3. nginx配置

(1)要使nginx支持本程序,首先配置nginx支持pathinfo
打开php配置文件 /usr/local/php/ect/php.ini ,找到配置项cgi.fix_pathinfo设置为1,cgi.fix_pathinfo=1,设置好以后,保存,并命令行模式下运行以下命令,重启php
[root]# /etc/init.d/php-fpm restart
Shutting down php_fpm . done
Starting php_fpm  done
(2)打开nginx配置文件 /usr/local/nginx/conf/nginx.conf(如果你配置了vhost,而且只需要你这一个vhost支持pathinfo的话,可以直接打开你的vhost的配置文件)
找到类似如下代码(不同版本的nginx可能稍有不同,但是相差不会很远):
    location ~ .*.(php|php5)?$
        {
                #原有代码
        }

修改为以下代码:

#去掉$是为了不匹配行末,即可以匹配.php/,以实现pathinfo
#如果你不需要用到php5后缀,也可以将其去掉
location ~ .php
        {
                #原有代码
                
                #定义变量 $path_info ,用于存放pathinfo信息
                set $path_info "";
                #定义变量 $real_script_name,用于存放真实地址
                set $real_script_name $fastcgi_script_name;
                #如果地址与引号内的正则表达式匹配
                if ($fastcgi_script_name ~ "^(.+?.php)(/.+)$") {
                        #将文件地址赋值给变量 $real_script_name
                        set $real_script_name $1;
                        #将文件地址后的参数赋值给变量 $path_info
                        set $path_info $2;
                }
                #配置fastcgi的一些参数
                fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
                fastcgi_param SCRIPT_NAME $real_script_name;
                fastcgi_param PATH_INFO $path_info;
}

#以下这段代码用于开启伪静态
if (!-e $request_filename) {
  rewrite  ^/(.*)$  /index.php/$1  last;
  break;
}
如下图所示:
配置要以后,需要重新启动nginx,运行如下命令重启nginx:
[root]# service nginx restart
至此,一个支持pathinfo和伪静态规则的nginx服务器已经配置好,经实际测试youdiancms的静态和伪静态功能都正常!
EZHTTP同样Linux支持其它环境的搭建,如:LAMP,LNMP,LNAMP,其步骤大同小异,大家可以尝试安装。

4. 如何升级nginx

1、执行./start.sh,输入3选项Upgrade Software


2、输入1选择升级nginx


3、输入nginx安装路径,直接回车则为/usr/local/nginx


4、输入新的nginx版本号


5、是否更改编译参数,输入n则不修改,否则输入y


6、到这步表明新的nginx已经安装成功并启用,目前需要你手动检查服务是否正常,如果正常,输入y会把旧的nginx进程停止;如果发现nginx不正常,可以输入n来把新的nginx停止,并启用旧的nginx。(注意,目前新的nginx二进制文件为/usr/local/nginx/sbin/nginx,旧的为/usr/local/nginx/sbin/nginx.old,输入n恢复旧的nginx进程,并没有恢复nginx二进制文件)


7、之后会提示是否安装成功,如upgrade nginx successfully.或者upgrade nginx failed.

5. 使用EZHTTP单独安装PHP模块

使用EZHTTP配置好环境之后,发现忘记安装某些php模块了,比如memcache,我们可以再次通过EZHTTP单独安装。
1、执行./start.sh,输入1进入LAMP LNMP LANMP选择安装。
2、接着按照你之前选择什么套件就选择什么,比如我之前安装的是lnmp
3、输入1(do_not_install),不安装nginx

4、输入1(do_not_install),不安装mysql

5、输入1(do_not_install),不安装php

6、输入y,安装php模块

7、设置php-config路径,直接回车则使用/usr/local/php/bin/php-config


8、选择安装的php模块,多个模块选择使用空格分隔,如2 3.

9、输入1(do_not_install),不安装其它软件




6. 使用EZHTTP添加一个虚拟主机

安装完成后,一般都需要建立虚拟主机,这时可以通过EZHTTP提供的ez命令来添加,下面让我们来看下怎么使用此命令。
键入如下命令 ez vhost add
一、如果安装的是lamp/lnamp
1、输入需要绑定的域名,多个域名以空格分隔,如www.centos.bz centos.bz

2、设置网站根目录,直接回车再设置为提示中的目录

3、之后会完成配置文件的创建及重载配置文件。

二、如果安装的是lnmp
1、输入需要绑定的域名,多个域名以空格分隔,如www.centos.bz centos.bz

2、设置网站根目录,直接回车再设置为提示中的目录
3、是否选择伪静态规则,如果你的程序不需要伪静态,则输入n,否则输入y.

4、是否需要支持php,如果只是静态文件,则输入n,否则输入y

5、是否需要支持pathinfo,pathinfo是常用的框架是thinkphp需要,其它的很少需要用到,如果要运行本司的程序youdiancms,必须要支持pathinfo,请选择Y


另外还有两个虚拟主机相关命令:
1、ez vhost list (列出所有虚拟主机)
2、ez vhost del (删除指定虚拟主机)
都很简单,这里不多说了。

7.使用EZHTTP开启或关闭PHP共享扩展

Enable_disable_php_extension工具可以很方便的开启或关闭php共享扩展。
可以开启的共享扩展有:bamath、curl、eaccelerator、ftp、gd、gettext、iconv、mbstring、mcrypt、memcache、mysqli、pdo_mysql、pdo_sqlite、redis、sockets、sqlite3、sqlite、xcache
1、执行./start.sh,输入2(Some Useful Tools),进入工具选择菜单。

2、输入7,选择Enable_disable_php_extension工具

3、设置php-config命令路径,直接回车则使用/usr/local/php/bin/php-config路径

4、接着会列出所有的php共享扩展,输入扩展名称则可以关闭或开启指定的php扩展

5、接着会提示关闭或开启php扩展是否成功,及是否继续开启或关闭扩展,输入n退出脚本,并重启php,输入y继续管理扩展。
 

8.EZHTTP日常管理

(1)使用EZHTTP重置MySQL密码
(2)使用EZHTTP添加MySQL用户/数据库
(3)使用EZHTTP添加FTP用户