CentOS 6.4配置Apache+PHP5+MySQL(lamp)环境以及报错处理思路
-07-14 13:06:12来源: 阅读 ()
Centos是linux下的一款系统了,下面我来介绍在CentOS6.4配置Apache+PHP5+MySQL环境,这里先是讲述具体一个个软件配置,然后再告诉大家配置站点哦。
准备篇
1、配置防火墙,开启80、3306、8080端口
vi/etc/sysconfig/iptables
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport80-jACCEPT#允许80端口通过防火墙
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport3306-jACCEPT#允许3306端
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport8080-jACCEPT#允许8080端口通过防火墙
备注:不要把这两条规则添加到防火墙配置的最后一行,会导致防火墙启动失败,
正确的应该是添加到默认的22端口这条规则的下面
如下所示:
################################添加好之后防火墙规则如下所示################################
#Firewallconfigurationwrittenbysystem-config-firewall
#Manualcustomizationofthisfileisnotrecommended.
*filter
:INPUTACCEPT[0:0]
:FORWARDACCEPT[0:0]
:OUTPUTACCEPT[0:0]
-AINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT
-AINPUT-picmp-jACCEPT
-AINPUT-ilo-jACCEPT
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport22-jACCEPT
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport80-jACCEPT
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport3306-jACCEPT
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport8080-jACCEPT
-AINPUT-jREJECT--reject-withicmp-host-prohibited
-AFORWARD-jREJECT--reject-withicmp-host-prohibited
COMMIT
#######################################################################################
service iptablesrestart#最后重启防火墙使配置生效
2、关闭SELINUX
vi/etc/selinux/config
#SELINUX=enforcing#注释掉
#SELINUXTYPE=targeted#注释掉
SELINUX=disabled#增加
:wq#保存退出
shutdown-rnow#重启系统
3、安装第三方yum源
wget/installers/atomic #下载
chmod+xatomic#添加权限
sh./atomic #安装
yumcleanall#清除yum源本地缓存镜像
yummakecache #重建yum源本地缓存镜像
安装篇
一、安装nginx
yumremovehttpd*php* #删除系统自带的软件包
yuminstallnginx #安装nginx根据提示输入y进行安装
chkconfignginxon #设置nginx开机启动
servicenginxstart #启动nginx
二、安装MySQL
1、安装MySQL
yuminstallmysqlmysql-server #输入Y即可自动安装,直到安装完成
/etc/init.d/mysqldstart #启动MySQL
chkconfigmysqldon #设为开机启动
cp/usr/share/mysql/my-f/etc/f #拷贝配置文件(注意:如果/etc目录下面默认有一个f,直接覆盖即可)
2、为root账户设置密码
mysql_secure_installation
#回车,根据提示输入Y,输入2次密码,回车,根据提示一路输入Y,最后出现:ThanksforusingMySQL!
MySql密码设置完成,重新启动MySQL:
/etc/init.d/mysqldrestart #重启
/etc/init.d/mysqldstop #停止
/etc/init.d/mysqldstart #启动
三、安装PHP5
1、安装PHP5
yuminstallphpphp-fpm #根据提示输入Y直到安装完成
2、安装PHP组件,使PHP5支持MySQL
yuminstallphp-mysqlphp-gdlibjpeg*php-imapphp-ldapphp-odbcphp-pearphp- php- rpcphp-mbstringphp-mcrypt php-bcmathphp-mhashlibmcrypt
#这里选择以上安装包进行安装,根据提示输入Y回车
chkconfigphp-fpmon #设置php-fpm开机启动
/etc/init.d/php-fpmstart #启动php-fpm
配置篇
一、配置nginx支持php
cp/etc/nginx/nginx.conf /etc/nginx/nginx.confbak#备份原有配置文件
vi/etc/nginx/nginx.conf #编辑
usernginxnginx; #修改nginx运行账号为:nginx组的nginx用户
:wq #保存退出
cp/etc/nginx/conf.d/default.conf/etc/nginx/conf.d/default.confbak #备份原有配置文件
vi/etc/nginx/conf.d/default.conf #编辑
server{
listen8080;#更改nginx端口为8080
server_name_;
indexindex.phpindex.htmlindex.htm; #增加index.php
#passthePHP stoFastCGIserverlisteningon127.0.0.1:9000
#
location~.php${
roothtml;
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.php;
fastcgi_param _FILENAME$document_root$fastcgi_ _name;
include fastcgi_params;
}
#取消FastCGIserver部分location的注释,并要注意fastcgi_param行的参数,改为$document_root$fastcgi_ _name,或者使用绝对路径
servicenginxrestart #重启nginx
二、php配置
vi/etc/php.ini #编辑
#以下部分可在vi编辑器中按Esc后输入/+搜索内容向下搜索,或者输入?+搜索内容向上搜索
date.timezone=PRC #在946行把前面的分号去掉,改为date.timezone=PRC
disable_functions=
passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,ope
nlog,syslog,read ,sym ,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdns
rr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd,
posix_getegid,posix_geteuid,posix_getgid,
posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,
posix_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,
posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,
posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#在386行列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
expose_php=Off #在432行禁止显示php版本的信息
magic_quotes_gpc=On #在745行打开magic_quotes_gpc来防止SQL注入
short_open_tag=ON #在229行支持php短标签
open_ dir=/usr/share/nginx/html/:/tmp/ #在380行设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,可以防止php木马跨站,如果改了之后安装程序有问题(例如:织梦内容管理系统),可以注销此行
:wq #保存退出
三、配置php-fpm
cp/etc/php-fpm.d/www.conf/etc/php-fpm.d/www.confbak #备份原有配置文件
vi/etc/php-fpm.d/www.conf #编辑
user=nginx #修改用户为nginx
group=nginx #修改组为nginx
:wq #保存退出
测试篇
cd/usr/share/nginx/html
viindex.php #添加以下代码
phpinfo();
?>
:wq! #保存退出
chownnginx.nginx/usr/share/nginx/html-R #设置权限
servicenginxrestart #重启nginx
servicephp-fpmrestart #重启php-fpm
在客户端浏览器输入服务器IP地址,可以看到相关的配置信息!
说明lamp配置成功!
至此,CnetOS6.4安装配置LAMP(Linux+Apache+MySQL+PHP)教程完成,接下面我们开始配置apache站点
RedhatEnterpriseLinux(包括 CentOS Linux),是使用最广的Linux服务器,大量的网站应用都部署在其上.
1.打开文件/etc/httpd/conf/httpd.conf,
在开头添加ServerNamelocalhost:80
搜索VirtualHostexample,找到代码如下:
#
#VirtualHostexample:
#AlmostanyApachedirectivemaygointoaVirtualHostcontainer.
#ThefirstVirtualHostsectionisusedfor requestswithoutaknown
#servername.
#
#
# ServerAdminwebmaster@dummy-
# DocumentRoot/www/docs/dummy-
# ServerNamedummy-
# ErrorLoglogs/dummy--error_log
# CustomLoglogs/dummy--access_logcommon
#
2.仿照例子,添加一段代码来指定某一域名的网站.
#
#DocumentRoot是网站文件存放的根目录
#ServerName是网站域名,需要跟DNS指向的域名一致
#
ServerAdminwebmaster@dummy-
DocumentRoot/var/www/httpdocs/demo_neoease_com
ErrorLoglogs/-error.log
CustomLoglogs/-access.logcommon
#安装网站时记得给apache写入权限
chown-Rapache网站目录
3.重启httpd服务,执行以下语句.(重启前需手动创建“ErrorLog”和“CustomLog”下指定的的文件夹)
servicehttpdrestart
报错处理思路:
1.在配置中发现服务器httpd启动失败,报错为
httpd:Couldnotreliablydeterminetheserver'sfullyqualifieddomainname,using127.0.53.53forServerName
度娘后解释为:无法可靠确定服务器的完全限定的域名,使用127.0.53.53为ServerName
因此要手动添加ServerName的解析
解决办法:vim/etc/httpd/conf/httpd.conf,在开头添加ServerNamelocalhost:80
2.更改后重启httpd报错为
httpd:(98)Addressalreadyinuse:make_sock:couldnotbindtoaddress[::]:80(98)Addressalreadyinuse:make_sock:couldnotbindtoaddress0.0.0.0:80nolisteningsocketsavailable,shuttingdown
意为端口号80已被占用,通过netstat-tunlp显示所有端口和所有对应的程序,用grep管道可以过滤出想要的关键字段.命令为netstat-tunlp|grep80
[root@cloud~]#netstat-tunlp|grep80
tcp000.0.0.0:58010.0.0.0:*LISTEN6146/Xvnc
tcp000.0.0.0:800.0.0.0:*LISTEN9092/nginx
显示端口号80被nginx占用。
因此,更改/etc/nginx/conf.d/default.conf
server{
listen8080;#更改nginx端口为8080
server_name_;
重启nginx然后重启httpd,显示启动失败,但是无任何报错信息,之前配置文件/etc/httpd/conf/httpd.conf中的log文件所在文件夹不存在,手动创建后启动成功。
问题解决。