阿里云CentOS-6.x-64PHP环境配置详细教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
阿⾥云CentOS-6.x-64PHP环境配置详细教程
常⽤命令:
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 /doc/91a7e4cf6c85ec3a86c2c55c.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
/doc/91a7e4cf6c85ec3a86c2c55c.html:80
取消注释,并把/doc/91a7e4cf6c85ec3a86c2c55c.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
/doc/91a7e4cf6c85ec3a86c2c55c.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//doc/91a7e4cf6c85ec3a86c2c55c.htmlf。
通常是修改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//doc/91a7e4cf6c85ec3a86c2c55c.htmlf
在[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//doc/91a7e4cf6c85ec3a86c2c55c.htmlf,在[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 /doc/91a7e4cf6c85ec3a86c2c55c.htmler 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//doc/91a7e4cf6c85ec3a86c2c55c.htmlf,调整连接参数
2.检查程序代码,对于没有关闭的链接及时进⾏关闭
产⽣这种问题的原因是:
连接数超过了MySQL 设置的值,与max_connections 和wait_timeout 都有关系。
wait_timeout 的值越⼤,连接的空闲等待就越长,这样就会造成当前连接数越⼤。
解决⽅法:
修改MySQL配置⽂件/etc//doc/91a7e4cf6c85ec3a86c2c55c.htmlf,设置成
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)在/doc/91a7e4cf6c85ec3a86c2c55c.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 # 虚拟主机/doc/91a7e4cf6c85ec3a86c2c55c.html定义,端⼝10002随后在⽤户的server.xml 定义worker.site1.port=10002
worker.site1.host=/doc/91a7e4cf6c85ec3a86c2c55c.html
worker.site1.type=ajp13
# 虚拟主机/doc/91a7e4cf6c85ec3a86c2c55c.html定义,端⼝10004随后在⽤户的server.xml 定义worker.site2.port=10004
worker.site2.host=/doc/91a7e4cf6c85ec3a86c2c55c.html
worker.site2.type=ajp13
# 虚拟主机/doc/91a7e4cf6c85ec3a86c2c55c.html定义,端⼝10006随后在⽤户的server.xml 定义worker.site3.port=10006
worker.site3.host=/doc/91a7e4cf6c85ec3a86c2c55c.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@/doc/91a7e4cf6c85ec3a86c2c55c.html
DocumentRoot /data/wwwroot/php #如果是php站点,指定其位置,java则⽆需指定ServerName
/doc/91a7e4cf6c85ec3a86c2c55c.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 /doc/91a7e4cf6c85ec3a86c2c55c.html:80取消注释,
并把/doc/91a7e4cf6c85ec3a86c2c55c.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 /doc/91a7e4cf6c85ec3a86c2c55c.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 /doc/91a7e4cf6c85ec3a86c2c55c.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进⾏代理,使⽤域名/doc/91a7e4cf6c85ec3a86c2c55c.html进⾏访问,被nginx直接代理到http://127.0.0.1:8080这个地址。
如果想创建多个虚拟主机,就可以在本机或其它主机创建多个tomcat 应⽤,使⽤不同的端⼝如8081,8082,8088,9000,9090等。
具体配置⽅法是在tomcat的server.xml中配置多个server,不同的server使⽤不同的端⼝,指向不同的⽬录。