阿里云CentOS-6.x-64 PHP环境配置详细教程

常用命令:

1.df –h,查看所有硬盘分区空间占用情况。

2.du –hs /usr/local,查看某目录空间占用情况总计。du –h /usr/local,查看某目录下所有目录文件空

间占用情况。

3.getconf LONG_BIT,查看系统是多少位的。

4.free –m,以m为单位查看内存。

5.echo 1 > /proc/sys/vm/drop_caches,释放缓存,效果显著。1后面有空格。

6.top,显示系统cpu和内存使用情况,类似于任务管理器。shift+M以内存占用率排序。

7.jcmd –l 可以查看所有jvm进程。会列表展示所有jvm进程,第一列是进程id。接着使用jcmd 进程

号VM.flags就可以查看所有的jvm参数,包括堆内存等等。

8.java命令中用-d32和-d64来表明程序运行在32位或者64位环境。如果JVM本身不支持该参数,会

报告错误:当前仅有java Hotspot server VM支持64位模式。选择"-server"选项必须使用-d64;

"-client"选项会忽略使用-d64;如果没有指定-d32或者-d64,则默认运行在32位模式,除非仅支持64位模式。目前在windows平台下jdk1.5,JDK1.6不支持-d32,-d64的选项,jdk1.7支持-d32,-d64的选项,在linux平台下jdk1.5, 1.6, 1.7均支持-d32,-d64的选项。

9.whereis php 查找php在哪个目录

10.vi :$到最后一行:n n =1,2,3,4,5 跳转到第几行

11.直接输入mount,可查看所有mount记录。

12.查看selinux状态,/usr/sbin/sestatus –v,如果显示如下:

SELinux status: enabled

SELinuxfs mount: /selinux

Current mode: enforcing

则表示selinux为开启状态。

查看selinux模式,getenforce,会显示selinux的模式。

13.关闭selinux。vi /etc/selinux/config,将SELINUX=enforcing更改为SELINUX=disabled,保存,

shutdown -r now #重启系统即可。

14.查看防火墙iptables状态,service iptables status。关闭防火墙,取消开机启动:service iptables stop

&& chkconfig iptables off

15.开启selinux和iptables防火墙,可能会导致navicat无法访问mysql,以及其它诸多无法访问问题,

除非你知道出现问题时该怎么做,否则最好关闭它们。

16.安装中文字体:yum install mkfontscale;

在/usr/share/fonts下,可创建自定义目录,如chinese/TrueType,Linux下目录和文件名称区分大小写,复制字体文件(运行ttf和ttc)到此目录下,赋字体文件权限chmod 644 *

#mkfontscale

#mkfontdir

#fc-cache –fv

17.查看apache版本,httpd –v,查看php版本,php -v

配置过程:

1.修改CentOS主机密码,重启实例。

2.阿里云主机CentOS6.5-64位默认是安装了OpenSSH的。所以使用PUTTY进行登录,用户名:root,

密码:上面修改后的密码。

3.对数据盘进行挂载,并分区。

a)df –h,查看当前磁盘分区使用情况,此时是看不到数据盘的。使用fdisk –l,可以看到一个未分区

未挂载的磁盘,通常叫做/dev/xvdb

b)对数据盘进行分区:fdisk /dev/xvdb,根据提示,依次输入“n”、“p”、“1”、两次回车,“w”,

分区就开始了,瞬间就会完成。其中,第一次选择n表示进行分区,第二次输入p,表示创建主分区,Linux最多4个主分区。如果选择e,表示创建扩展分区,扩展分区还要创建逻辑分区后才能使用。

此处直接创建主分区了。第三次选择1,表示创建1个分区,当然根据情况也可以创建多个(最多4个),之后两次回车默认,最后选择w,写入分区表。如果是创建逻辑分区的话,后面步骤略有差异。

c)fdisk –l,此时应该可以看到新的分区/dev/xvdb1了。通过ls –l /dev,也可看到目录信息。

d)mkfs –t ext4 /dev/xvdb1,把分区格式化为ext4文件系统格式。

e)cd / &&mkdir /data。在/分区下创建一个data目录用于挂载新硬盘新分区。

f)设置开机挂载:vi /etc/fstab,文件末尾添加新的一行:

/dev/xvdb1 /data ext4 defaults 0 0

g)重启,最好使用阿里云控制台的重启,当然直接在PUTTY中reboot也可以。

h)df –h,应该可以看到新的分区,及挂载到/data目录了。

4.更换数据源:如果觉得默认数据源速度比较慢或者缺少软件的话,可考虑更换源,通常情况下无需更换。

a)cd /etc/yum.repos.d

b)备份默认源:mv CentOS-Base.repo CentOS-Base.repo.backup

c)下载163源:wget https://www.360docs.net/doc/9c2006583.html,/.help/CentOS6-Base-163.repo,会直接下载到

当前目录。

d)备份163源:cp CentOS6-Base-163.repo CentOS6-Base-163.repo.backup

e)把下载下来的文件CentOS6-Base-163.repo设置为默认源。

mv CentOS6-Base-163.repo CentOS-Base.repo

f)运行yum makecache生成缓存。

g)yum update 更新软件库

5.安装vsftp。

a)查看是否安装vsftp,rpm –qa|grep vsftpd。阿里云的centos-6.5默认是没有预装vsftp的。

b)yum install ftp vsftpd

c)启动vsftp服务。service vsftpd start。

d)执行:ftp 114.215.128.136#ip地址即阿里云的公网ip,用户名:anonymous,密码:空。

回车后,如果出现230Login successful,表示vsftpd安装成功。输入bye退出到命令行状态。

e)添加一个ftp属主账户:useradd –d /data/ftp –g ftp –s /sbin/nologin ftpadmin,此句的意思

是创建一个名为ftpadmin的用户,属主目录是/data/ftp,所属组是ftp,并且不能进行登录。

f)使用passwd ftpadmin命令,给此用户设置密码,密码必须是字母+数字。

g)修改配置文件vi /etc/vsftpd/vsftpd.conf。

anonymous_enable=NO 不允许匿名用户访问

local_enable=YES允许本地用户访问注:如果为NO 则所有虚拟用户都将不能访问原因:虚拟用户访问基实质是以服务器本地用户访问的

write_enable=YES 可写,默认。

chroot_list_enable=YES取消注释,允许使用list中的用户。

chroot_list_file=/etc/vsftpd/chroot_list取消注释,指定宿主用户文件,此文件需要自己创建,每一行为一个服务器本地用户名,名称默认此名称chroot_list即可。

pam_service_name=vsftpd 指定pam认证文件名,此例则对应于/etc/pam.d/vsftpd

以下在文件末尾新增:

guest_enable=YES 启用虚拟用户功能,必须启用

guest_username=ftpadmin 指定虚拟用户的宿主用户,注:此用户需要在chroot_list_file中指定的/etc/vsftpd/chroot_list文件里存在。

user_config_dir=/etc/vsftpd/vsftpuser_conf 设置虚拟用户个人vsftp的服务配置文件目录,

必须指定。

h)在配置文件中添加被动模式,以支持windows常见客户端flashfxp访问。以下为继续新增:

listen_port=21

pasv_enable=YES(Default: YES)设置是否允许pasv模式

pasv_max_port=50000(Default: 0 (use any port))pasv使用的最大端口

pasv_min_port=45000(Default: 0 (use any port))pasv使用的最小端口

此端口范围,需要在iptables中开放(对于CentOS6.5无需任何操作)。保存,退出。

i)查看是否安装db4和db4utils。阿里云CentOS6.5默认是已经预安装了的。

rpm -qa|grep db4,如未安装,则yum -y install db4 db4-utils

j)创建vi /etc/vsftpd/chroot_list文件,在文件中添加宿主用户ftpadmin,文件末尾不能有空格,一行一个用户名,不需要密码。

k)创建虚拟用户列表:vi /etc/vsftpd/vsftpuser.txtx (奇数行为用户名,偶数行为密码,文件名称任意)。

l)生成虚拟用户的db文件:

db_load -T -t hash -f /etc/vsftpd/vsftpuser.txtx /etc/vsftpd/vsftpuser.db

其中,vsftpuser.txtx与第6步的文件名称相同,vsftpuser.db文件名可随意,但是下面会用到。

生成虚拟用户的认证文件:vi /etc/pam.d/vsftpd,删除掉此文件中的所有内容,同时:

32位系统增加以下两句:

auth required pam_userdb.so db=/etc/vsftpd/vsftpuser

account required pam_userdb.so db=/etc/vsftpd/vsftpuser

64位系统增加以下两句:

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpuser

account sufficient /lib64/security/pam_userdb.sodb=/etc/vsftpd/vsftpuser

注:db=/etc/vsftpd/vftpuser 中的vftpuser 是你生成的虚拟用户的db文件,省略扩展名。

m)创建每个虚拟用户自己的配置文件,配置文件的路径是/etc/vsftpd/vsftpd.conf中的user_config_dir路径。mkdir/etc/vsftpd/vsftpuser_conf/并在此目录下创建以用户名为名称的文件(用户名是/etc/vsftpd/vftpuser.txtx 下面的奇数行)。内容如下:

local_root=/data/ftp(虚拟用户的根目录根据实际情况修改,虚拟用户只能操作此目录)

write_enable=YES

download_enable=YES

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

local_umask=022

n)确认设置文件夹权限,chmod -R 777 /data/ftp,设置777权限,必须有可执行权限,否则提示打不开目录。-R表示递归设置。chgrp -R ftp/data/ftp,设置用户属主。

o)重启vsftpd,service vsftpd restart。

p)设置开机启动服务:

chkconfig --list|grep vsftpd ( 查看情况),如果全是off表示尚未设置成开机启动。

chkconfig --level 2345 vsftpd on

q)登录测试:

ftp 114.215.128.136,输入虚拟用户名和密码,如果显示230Login successful,表示配置成功。

注:使用FlashFXP或其它客户端时,应设置传输编码为utf8,否则会中文乱码。同时为防止上传下载时出现乱码及不能切换目录的情况,建议上传时一律使用utf8编码上传。

6.安装Lamp环境。阿里云上默认是没有安装apache、php和mysql的

a)安装php:yum install php。

b)安装依赖:yum install php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml

php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt curl curl-devel

c)安装mysql的php支持,yum install php-mysql

d)如果安装nginx,需要安装yum install php-fpm,详细参见下面的步骤。

e)如果安装apache,则yum -y install httpd

f)启用php扩展的话,在/etc/php.d目录中

g)常用配置:vi /etc/php.ini启用短标签,设置short_open_tag = On,设置mbstring开启及编

码,mbstring.interal_encoding= UTF-8,设置时区:date.timezone = Asia/Shanghai,否则DateTime类会无法使用。

h)修改etc/httpd/conf下的httpd.conf文件,第276行ServerName https://www.360docs.net/doc/9c2006583.html,:80

取消注释,并把https://www.360docs.net/doc/9c2006583.html,改为localhost。同时把Listen 80临时更改为Listen 9090,因为阿里云如果没有备案域名的话,是无法访问80端口的。待备案发布产品时再改回80端口即可。

i)开启服务service httpd start。外网访问:http://114.215.128.136:9090,如果能成功访问到

php信息,表示apache和php都安装设置成功。

j)安装mysql:yum install mysql mysql-server,默认版本通常比较低。如果需要安装较新版本,# wget https://www.360docs.net/doc/9c2006583.html,/get/mysql-community-release-el6-5.noarch.rpm

rpm –ivh mysql-community-release-el6-5.noarch.rpm

全新安装:yum remove mysql mysql-server && yum install mysql mysql-server

数据库更新或升级之后:先备份所有自己创建的数据库,然后将其删除

#mysql_upgrade –uroot –p #此步骤用于升级数据库后,升级系统数据库的内容

#service mysqld restart #升级数据库后重新启动服务

修改mysql配置文件:vi /etc/https://www.360docs.net/doc/9c2006583.html,f。通常是修改data-dir的指向位置,如data-dir = /data/mysqlroot,每次修改后都要重新启动服务对目录进行初始化,包括root密码也会重置。

socket文件指向最好不要修改,修改后会很多麻烦。如果想要删除/var/lib/mysql下的数据库文件,则需要在mysqld服务重启之后删除即可,但需要保留mysql.sock文件。

k)修改mysql数据库编码:

登录到mysql后,使用show variables like “character”;来查看mysql各编码,默认应该是未设置。

更改成utf8编码的方法:

vi /etc/https://www.360docs.net/doc/9c2006583.html,f

在[mysqld]下添加两行:

character-set-server=utf8 #老版本使用的是default-character-set=utf8 init_connect=?SET NAMES utf8?

default-storage-engine=InnoDB

max_allowed_packet=50M

增加

[client]

default-character-set=utf8

l) 更改mysql配置文件,支持运行大sql文件。vi /etc/https://www.360docs.net/doc/9c2006583.html,f,在[mysqld]下添加一行:max_allowed_packet=50M

m)service mysqld start。控制台使用命令:mysql_secure_installation,设置root用户密码。第一次密码默认为空,直接回车确认即可。按提示进行操作,设置新密码,移除匿名用户,是否禁止root远程访问,移除测试数据库,重载私有表。

n)设置开机启动:chkconfig –level 2345 httpd on chkconfig –level 2345 mysqld on(level 前是两个横杠)

o)注:另有两种设置root密码的方式:

/usr/bin/mysqladmin -u root password '123456'// 为root账号设置密码

或者也可以使用mysql命令登录后,使用以下语句更改密码:

update https://www.360docs.net/doc/9c2006583.html,er set password=PASSWORD(…123456?) where user=?root?;

flush privileges;

p)使用mysql –u root –p即可进行登录。如果不能登录,则额外指定ip,则使用mysql –h 127.0.0.1 –uroot –p

q) 通常情况下,此时在外部仍不能访问服务器上的数据库,也就是说不能远程访问。需要做以下设置:对用户授权,允许指定用户远程访问,将mysql库中user表中的对应的用户的host设置为%,亦即允许该用户从任意ip远程访问,通常完成此步骤即可解决ip远程无法访问问题。

# mysql -u root -p //进入mysql控制台

# mysql>use mysql;

# mysql>update user set host = '%' where user = 'root'; //这个命令执行错误时可略过,通常会提示错误。

# mysql>flush privileges;

# mysql>select host, user from user; //检查…%? 是否插入到数据库中

#mysql>quit

此操作完成之后,外部即可访问,使用Navicat也可以连接了。

r) 如果出现root用户无法登录的情况,可尝试使用-h 参数登录,登录之后,重新设置root用户的密码。

s) 查看数据库连接情况:

mysql –uroot –p

登录后:show processlist;

如果想杀死一个数据库连接,直接

kill 1xxxx;后面是显示的进程id号。

t) 为了防止发生too many connections时候无法登录的问题

1.修改配置文件/etc/https://www.360docs.net/doc/9c2006583.html,f,调整连接参数

2.检查程序代码,对于没有关闭的链接及时进行关闭

产生这种问题的原因是:

连接数超过了MySQL 设置的值,与max_connections 和wait_timeout 都有关系。

wait_timeout 的值越大,连接的空闲等待就越长,这样就会造成当前连接数越大。

解决方法:

修改MySQL配置文件/etc/https://www.360docs.net/doc/9c2006583.html,f,设置成max_connections=1000,wait_timeout=5。如果没有此项设置可以自行添加,修改后重启MySQL服务即可。要不经常性报此错误,则要对服务器作整体性能优化

如果使用mysql –uroot –p出现提示localhost无法登录的情况。

尝试使用mysql –h 127.0.0.1 –uroot –p

u)如果发现mysql运行时异常,日志文件在/var/log/mysqld.log。重新初始化数据库:执行脚本/usr/bin/mysql_install_db

7.部署java和tomcat环境。CentOS6.5没有预安装java环境。

a)rpm –ivh jdk-7u60-linux-x64.rpm,安装新版本。

b)设置环境变量。

cd /etc/profile.d/

vi java.sh,创建一个新的文件。

添加以下内容:

export JAVA_HOME=/usr/java/jdk1.7.0_60 #rpm安装后一般安装到/usr/java下,此目

录下有个latest是个软链接,链接到最后安装的jdk版本,所有不要删除。

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib #注:等号前后不能有空格。

c)source /etc/profile,让修改后的环境变量立即生效。java –version。若显示java版本,表示安

装正常,且环境变量设置成功。

8.tomcat环境部署:

a)将源文件复制到/usr/local下,tar zvxf apache-tomcat-7.0.54.tar.gz

b)将目录改名为tomcat7

c)cd /bin & ./startup.sh

d)在外网使用http://114.215.128.136:8080,如果正常显示页面,表示安装成功。

e)yum install openssl-devel,安装openssl。

f)在https://www.360docs.net/doc/9c2006583.html,/download.cgi 下载Apr和AprUtils。

g)安装apr

tar zvxf apr-1.5.1.tar.gz

cd apr-1.5.1

./configure –prefix=/usr/local/apr

make

make install

apr 默认安装在/usr/local/apr

h)安装apr-util

tar zvxf apr-util-1.5.3.tar.gz

cd apr-util-1.5.3

./configure –prefix=/usr/local/apr-util --with-apr=/usr/local/apr

make

make install

i)安装tomcat-native tomcat-native.tar.gz 可以在tomcat/bin目录下找到。

cd /usr/local/tomcat7/bin

tar zvxf tomcat-native.tar.gz

cd tomcat-native-1.1.30-src/jni/native

./configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.7.0_60

make

make install

j)设置apr 的环境变量:

vi /etc/profile

文件末尾添加以下内容:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib #等号前后不能有空格使profile生效,

source /etc/profile

k)启动tomcat 后,看日志:

./startup.sh

cat logs/catalina.out

可以看到以下结果:

INFO: Loaded APR based Apache Tomcat Native library 1.1.30 using APR version 1.5.1.

INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].

表示安装配置成功。

9.配置apache和tomcat多实例环境。对于无域名的局域网内主机设置无效。

a)yum install httpd-devel,此时在/usr/sbin下会生成一个apxs文件。

b)下载tomcat-connector,解压缩tar zvxf tomcat-connectors-1.2.40-src.tar.gz。

c)cd tomcat-connectors-1.2.37-src/native/

d)./configure --with-apxs=/usr/sbin/apxs

e)make && make install,安装完成后,会看到/usr/lib64/httpd/modules/mod_jk.so,表示编

译安装到此目录中。

f)vi /etc/httpd/conf/httpd.conf,在文件末尾加一行Include conf/mod_jk.conf

g)在conf目录下新建mod_jk.conf文件,添加内容如下:

#加载moldules下mod_jk.so文件

loadModule jk_module modules/mod_jk.so

#加载集群中的工作的tomcat配置文件

JkWorkersFile conf/workers.properties

#共享内存的配置和运行时信息文件名

JkShmFile logs/mod_jk.shm

#指定jk的日志输出文件

JkLogFilelogs/mod_jk.log

#日志输出文件的级别

JkLogLevelerror

h)创建tomcat多实例配置文件conf/workers.properties,添加内容如下:

# 指定Tomcat 和JDK 路径

workers.tomcat_home=/usr/local/tomcat7

workers.java_home=/usr/java/jdk1.7.0_60

ps=/

# worker列表

# 定义转发请求到不同Tomca列表,此处定义3个,分别对应虚拟主机site1、site2和site3 worker.list=site1,site2,site3

# 虚拟主机https://www.360docs.net/doc/9c2006583.html,定义,端口10002随后在用户的server.xml 定义

worker.site1.port=10002

worker.site1.host=https://www.360docs.net/doc/9c2006583.html,

worker.site1.type=ajp13

# 虚拟主机https://www.360docs.net/doc/9c2006583.html,定义,端口10004随后在用户的server.xml 定义

worker.site2.port=10004

worker.site2.host=https://www.360docs.net/doc/9c2006583.html,

worker.site2.type=ajp13

# 虚拟主机https://www.360docs.net/doc/9c2006583.html,定义,端口10006随后在用户的server.xml 定义

worker.site3.port=10006

worker.site3.host=https://www.360docs.net/doc/9c2006583.html,

worker.site3.type=ajp13

i)tomcat7目录,仅留下bin和lib目录,其余目录以副本形式创建多个,每一个都是一个tomcat

实例。在webapps下的ROOT目录下,放置JavaEE应用。

j)vi /etc/httpd/conf/httpd.conf,在文件末尾添加如下内容:

#

# DocumentRoot 是网站文件存放的根目录(针对于php,java无需此设置)

# ServerName 是网站域名, 需要跟DNS 指向的域名一致,不包含http://

#

NameVirtualHost *:80#必须

ServerAdmin viogel4@https://www.360docs.net/doc/9c2006583.html,

DocumentRoot /data/wwwroot/php #如果是php站点,指定其位置,java则无需指定ServerName https://www.360docs.net/doc/9c2006583.html,#不带http://前缀

DirectoryIndex index.jsp index.php

#转发到tomcat实例处理请求时才需要,php站点不需要。

#JkMount /* site1 #如果对任何url全部转发,可按此设置

JkMount /*.jsp site1

JkMount /*.do site1

JkMount /servlet/* site1

JkMount /*.action site1

JkMount /*.jhtml site1

第一个虚拟主机创建一个。

k)将apache的监听端口更改为80

l)编辑tomcat实例下的server.xml,进行如下更改:

中的端口更改为workser.properties中指定的port端口-1

注释掉8080端口的connector。

将protocol="AJP/1.3"的connector端口更改为workers.properties中设置的端口。

m)在每个实例下,编写一个启动服务和停止服务的脚本tomcat.sh

#!/bin/bash

# description: Start up the Tomcat servlet engine.

# Sourc function library.

. /etc/init.d/functions

RETVAL=$?

export CATALINA _BASE= /data/wwwroot/java/yueyoga #tomcat实例目录

export CATALINA _HOME= /usr/local/tomcat7

case $1 in

start

if [ -f $CATALINA _HOME/bin/startup.sh ];

then

echo $ Start Tomcat

$CATALINA _HOME/bin/startup.sh

fi

;;

stop

if [ -f $CATALINA _HOME/bin/shutdown.sh ];

then

echo $ Stop Tomcat

$CATALINA _HOME/bin/shutdown.sh

fi

;;

*

echo $ Usage: $0 {start|stop}

exit 1

;;

esac

exit $RETVAL

注意:此脚本文件要在CentOS系统下生成,不能使用windows编写,格式不兼容。

10.配置apache自动进行gzip压缩

必须先开启以下两个模块:去掉前面的#

LoadModule deflate_module modules/mod_deflate.so

LoadModule headers_module modules/mod_headers.so

对于阿里云的centos 6.5系统安装的apache默认是已经开启此两个模块的。

同时在配置文件的末尾加上一段:配置压缩级别以及压缩文件和不进行压缩的文件。

SetOutputFilter DEFLATE

DeflateCompressionLevel 9

AddOutputFilterByType DEFLATE text/*

AddOutputFilterByType DEFLATE application/javascript application/x-javascript

AddOutputFilter DEFLATE js css

SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary

SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary

SetEnvIfNoCase Request_URI .(?:pdf|doc|docx|xls|xlsx|ppt|pptx|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary

11.注:tomcat也可单独进行配置gzip压缩。如果使用apache和tomcat结合使用的话,只需要在apache

服务器配置gzip压缩即可。

阿里云部署PHP项目及ThinkPHP项目注意事项:

1.安装常见php扩展:yum install php-gd libjpeg* php-xml php-xmlrpc php-mbstring php-mcrypt

libmcrypt,安装完成后,可使用phpinfo()函数验证是否安装成功。已启用的扩展可在/etc/php.d目录中查看。

2.安装mysql数据库:yum install php-mysql

3.确认php项目是否使用了php短标签或asp格式的标签,如果有,那么需要开启。在/etc/php.ini中,

找到short_open_tag = Off,将Off改为On

4.确认php项目是否使用了mbstring等相关函数,如果使用了,则需要安装php-mbstring扩展。安装

后,在/etc/php.ini中,取消注释并设置mbstring.internal_encodeing = UTF-8

5.设置时区:date.timezone = Asia/Shanghai,否则PHP 5.3之后的DateTime类会无法使用。

6.如果项目中用到了hessianPHP2,则需要安装curl,yum install curl curl-devel

7.如果项目中需要使用ssl,则需要安装openssl,yum install openss openssl-devel

8.修改etc/httpd/conf下的httpd.conf文件,查找ServerName https://www.360docs.net/doc/9c2006583.html,:80取消注释,

并把https://www.360docs.net/doc/9c2006583.html,改为localhost。否则,在启动httpd服务的时候会有警告。

9.开启apache的pathinfo支持:修改/etc/php.ini,找到;cgi.fix_pathinfo=1,去掉前面的分号。在

apache配置文件中/etc/httpd/conf/httpd.conf加入,

AcceptPathInfo On

10.开启apache的rewrite模块。修改/etc/httpd/conf/httpd.conf,找到LoadModule rewrite_module

modules/mod_rewrite.so,将前面的“#”去掉,如果不存在则添加此句。阿里云CentOS-6.5在安装apache服务器的时候默认是启动rewrite模块的。如果你的网站(或应用)是放在根目录/中,则找到Options FollowSymLinks

AllowOverride None

将上面的None改为All

如果设置了DirectoryRoot,则在DirectoryRoot标签内部,设置

Order allow,deny

Allow from all

AllowOverride All

如果启用的是虚拟主机,则在虚拟主机的标签内部,设置

Options Indexes FollowSymLinks

AllowOverride all

Order Allow,Deny

Allow from all

11.a pache的日志在/var/log/httpd目录下,可在此目录下查看错误日志。日志设置在

/etc/httpd/conf/httpd.conf文件中,设置LogLevel = debug,info,warn,error等。

12.注意php项目的权限设置,如果权限设置不正确,可能导致目录或文件,不可读,不可写,不可执行。

13.项目入口文件index.php,在linux下是不能正常使用的,需要进行测试(使用echo输出即可)改为正

确格式。

define('THINK_PATH',dirname(__FILE__).'/CORE/');

define('APP_NAME',dirname(__FILE__).'App');

define('APP_PATH',dirname(__FILE__).'/App/');

define('APP_DEBUG',0);

define('APP_PUBLIC_PATH',dirname(__FILE__).'./Public');

define('BUILD_DIR_SECURE',true);

define('DIR_SECURE_FILENAME', 'default.html');

define('DIR_SECURE_CONTENT', 'deney Access!');

//echo dirname(__FILE__);

//echo APP_PATH;

require(THINK_PATH.'Core.php');

nginx环境安装

1.可使用yum install nginx,直接进行安装,但是CentOS-6.6库提供的nginx版本实在是太老了。所

以先安装nginx-release-centos-6-0.el6.ngx.noarch.rpm,安装之后,会将nginx添加到centos 软件库,此时再进行yum 安装即可安装较新的版本。

2.安装之前,需要关闭Selinux和iptables,如果不关闭,则需要开放所有需要开放的端口。

3.安装之前,先安装必要的依赖:

yum install php-gd libjpeg* php-xml php-xmlrpc php-mbstring php-mcrypt libmcrypt yum install curl curl-devel

yum install zlib zlib-devel openssl openssl-devel pcre pcre-devel

4. 开始安装:yum install nginx,安装完成后,已自动注册为系统服务且默认开机启动,可以使用

chkconfig –list nginx 来进行查看,可使用service nginx start|stop|restart来进行服务的启动。

nginx的几个默认目录

whereis nginx

nginx: /usr/sbin/nginx /etc/nginx /usr/share/nginx

配置所在目录:/etc/nginx/

PID目录:/var/run/nginx.pid

错误日志:/var/log/nginx/error.log

访问日志:/var/log/nginx/access.log

默认站点目录:/usr/share/nginx/html

5.常用命令

服务开启|停止|重启:service nginx start|stop|restart

启动nginx:nginx

重启nginx:killall -HUP nginx

测试nginx配置:nginx -t

启动后使用http://114.215.128.136:80,测试是否启动成功,如果启动成功,会显示如下界面。

6.安装php支持。yum install php-fpm。设置为开机启动chkconfig –level 2345 php-fpm on

7.配置nginx。

vi /etc/nginx/nginx.conf,第一行更改为user nginx nginx;

vi /etc/nginx/conf.d/default.conf

修改location / 部分,index index.php index.html index.htm;增加index.php

取消关于php FasgCGI部分的注释

location ~ \.php$ {

root /usr/share/nginx/html;#web应用目录,指此localtion的目录

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

同时,fastcgi改为红色字体部分。

8.配置php-fpm

vi /etc/php-fpm.d/www.conf #编辑

user = nginx #修改用户为nginx

group = nginx #修改组为nginx

:wq #保存退出

注意:这里的user和group是不能使用root的。

9. 配置虚拟主机:

修改default.conf

server {

listen 80;

server_name localhost;

location / {

root /usr/share/nginx/html;

index index.php index.html index.htm;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

location ~ \.php$ {

root /usr/share/nginx/html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

}

添加ytree.conf

server {

listen 80;

server_name https://www.360docs.net/doc/9c2006583.html,;

root /data/www/php/ytree;

index index.php index.html index.htm;

location ~ \.php$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

}

10. session读取不到的问题:查看/etc/php.ini,默认session.save_path=/var/lib/php/session,此配置对

apache是没有问题的。但是nginx由于对用户敏感性,在nginx.conf和/etc/php-fpm.d/www.conf中均设置了用户和组为nginx,所以如果部署在nginx中的应用无法读取session,则进行以下操作:

chown nginx.nginx /var/lib/php/session

chmod 766 /var/lib/php/session

此时读取session应该没有问题了。

如果是apache环境,则要设置chown root.apache /var/lib/php/session

chmod 770 /var/lib/php/session

Nginx与tomcat整合

1.tomcat安装过程如上。

2.cd /etc/nginx && vi proxy.conf,添加一个代理设置,内容如下:

proxy_redirect off;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size 10m;

client_body_buffer_size 128k;

proxy_connect_timeout 90;

proxy_send_timeout 90;

proxy_read_timeout 90;

proxy_buffer_size 4k;

proxy_buffers 4 32k;

proxy_busy_buffers_size 64k;

proxy_temp_file_write_size 64k;

3.cd /etc/nginx/conf.d && vi test.conf,添加一个tomcat应用代理设置,内容如下:

server {

listen 80;

server_name https://www.360docs.net/doc/9c2006583.html,;

root /usr/local/tomcat7/webapps/ROOT;

location / {

index index.jsp index.jhtml index.do index.html index.htm;

include /etc/nginx/proxy.conf;

proxy_pass http://127.0.0.1:8080;

}

}

这是一个tomcat虚拟主机,通过nginx进行代理,使用域名https://www.360docs.net/doc/9c2006583.html,进行访问,被nginx直接代理到http://127.0.0.1:8080这个地址。如果想创建多个虚拟主机,就可以在本机或其它主机创建多个tomcat应用,使用不同的端口如8081,8082,8088,9000,9090等。具体配置方法是在tomcat的server.xml中配置多个server,不同的server使用不同的端口,指向不同的目录。

相关文档
最新文档