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)进程管理
- nginx管理:service nginx (start|stop|restart)
- apache管理:service httpd (start|stop|restart)
- php-fpm管理:service php-fpm (start|stop|restart)
- mysql管理: service mysqld (start|stop|restart)
- pureftpd管理: service pureftpd (start|stop|restart)
- memcached管理: service memcached (start|stop|restart)
- redis管理: service redis (start|stop|restart)
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;
}
#以下这段代码用于开启伪静态,很多小伙伴在安装好YouDianCMS建站系统之后出现后台页面无法访问的问题,下面就是可能需要注意的地方
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用户