本文详细介绍了CentOS6.4系统中安装LAMP服务并对其进行配置的过程,即安装Apache+PHP+Mysql,参照了网上大神的设置,其他Linux发行系统可以参考~
在本文中部分命令操作需要root权限,输入‘su -’命令后输入密码即可切换root身份。
1. 防火墙设置
设置/etc/sysconfig/iptables文件允许80端口和3306端口。因为80端口是http协议所使用的端口,如果防火墙禁止80端口的话,网站配置好了也无法从外网访问。3306端口是MySql数据库的默认端口。使用VIM打开iptables文件并添加规则:
1 打开iptables文件进行修改 2 vim /etc/sysconfig/iptables 3 4 加入下列两行 5 -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 6 -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
添加好后文件应该如下图,如果以前修改过该文件责可能和笔者的图中略有不同:
修改完成注意检查下拼写,不要有错误。保存之后重启防火墙生效:
/etc/init.d/iptables restart
2. 关闭SELINUX
SELinux 是 2.6 版本的 Linux 内核中提供的强制访问控制(MAC)系统。对于目前可用的 Linux安全模块来说,SELinux 是功能最全面,而且测试最充分的。SELinux提供了比默认ugo+rwx更详细的权限控制。打开SELinux后,即使因为0day漏洞被提权,相应程序的权限在SELinux控制下也不会造成太大影响。但是在实际应用情况中,SELinux并不实用,没人会闲的去用0day漏洞攻击个人电脑,业务服务器基本上都是用负载均衡设备做流量分发,对外仅开放了仅有的几个端口。所以综合安全性和复杂性来说,SELinux的性价比并不高。修改/etc/selinux/config文件关闭SELinux,设置后如图:
1 vim /etc/selinux/config 2 3 注释掉如下两行,在行首添加#注释。 4 SELINUX=enforcing 5 SELINUXTYPE=targeted 6 7 在后面增加: 8 SELINUX=disabled
关闭SELinux后需要重启系统,输入‘shutdown -r now’重启系统。
1. MySql的安装和配置
安装MySql:
1 通过yum软件包管理器安装MySql,管理器会自动安装依赖项,遇到询问直接输入y确认,直到显示“Complete!”完成。 2 yum install mysql mysql-server 3 4 启动MySql 5 /etc/init.d/mysqld start 6 7 设置MySql服务为开机启动 8 chkconfig mysqld on 9 10 复制MySql默认配置文件,直接覆盖/etc/my.cnf 11 cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
MySql设置:
设置MySql管理员root账户的密码。
输入如下命令后需要连续输入两次密码确认,有询问输入Y同意即可,成功后显示Thanks for using MySQL!。
mysql_secure_installation
设置成功后需要重启MySql服务:
1 /etc/init.d/mysqld stop 2 /etc/init.d/mysqld start
2. Apache服务的安装和配置
1 安装httpd 2 yum install httpd 3 4 启动Apache服务 5 /etc/init.d/httpd start 6 7 编辑apache设置 8 vim /etc/httpd/conf/httpd.conf 9 查找 #ServerName www.example.com:80 10 修改成 ServerName www.XXXX.com:80 11 其中的“www.XXXX.com”自己的域名,没有可设置为localhost,如图 12 13 设置Apache服务开机启动 14 chkconfig httpd on 15 16 重启Apache服务 17 /etc/init.d/httpd restart
安装好Apache服务后,打开系统自带的火狐浏览器,打开localhost这个网址即可看到Apache的示例网页。
3.安装PHP
安装PHP非常简单:
遇到询问直接输y确认 yum install php
安装PHP插件:
插件包括MySql支持等,遇到询问一如既往的y确认~~ yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt
安装完成后不要忘了重启Apache和MySql:
/etc/init.d/mysqld restart
/etc/init.d/httpd restart
到此软件的安装就结束了,接下来进行配置和测试。
1.修改Apache配置
作为一个架设在公网上的服务器,我们可不能让服务器所使用的软件版本或者错误等信息暴露网页上,这就需要对Apache进行设置:
1 编辑文件Apache设置文件 2 vi /etc/httpd/conf/httpd.conf 3 4 44行: 修改 ServerTokens OS 为 ServerTokens Prod 5 防止错误页显示操作系统名字 6 7 76行: 修改 KeepAlive Off 为 KeepAlive On 8 允许程序性联机 9 10 83行: 修改 MaxKeepAliveRequests 100 为 MaxKeepAliveRequests 1000 11 增加同时连接数 12 13 331行: 修改 Options Indexes FollowSymLinks 为 Options Includes ExecCGI FollowSymLinks 14 允许服务器执行CGI及SSI,防止列出目录 15 16 338行: 修改 AllowOverride None 为 AllowOverride All 17 允许.htaccess 18 19 402行: 修改 DirectoryIndex index.html index.html.var 为 DirectoryIndex index.php Default.php index.html index.htm Default.html Default.htm 20 添加php默认文档 21 22 536行: 修改 ServerSignature On 为 ServerSignature Off 23 防止错误页显示Apache版本 24 25 554行: 修改 Options Indexes MultiViews FollowSymLinks 为 Options MultiViews FollowSymLinks 26 不显示树状目录结构 27 28 759行: 根据需要设置为 AddDefaultCharset UTF-8 或者 AddDefaultCharset GB2312 29 笔者大多数时候都在使用UTF-8编码,所以不进行修改 30 31 796行: 修改 #AddHandler cgi-script .cgi 为 AddHandler cgi-script .cgi .pl 32 允许扩展名为.pl的CGI脚本运行
修改完成后保存退出并重启Apache,删除测试网页:
/etc/init.d/httpd restart 删除测试网页 rm -f /etc/httpd/conf.d/welcome.conf /var/www/error/noindex.html
2. 修改PHP配置
1 编辑php设置文件 2 vim /etc/php.ini 3 4 946行: 修改 ;date.timezone = PRC 为 date.timezone = PRC (去掉分号) 5 6 386行: 修改 disable_functions = 为 disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,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 7 设置PHP的禁用函数,若程序中需要使用的函数可以删除掉。 8 9 432行: 设置 expose_php = Off 10 禁止显示php版本的信息 11 12 745行: 设置 magic_quotes_gpc = On 13 打开magic_quotes_gpc,用于防止SQL注入 14 15 229行: 设置 short_open_tag = ON 16 支持php短标签 17 18 380行: 设置 open_basedir = .:/tmp/ 19 设置允许访问的目录和/tmp/目录,防止php木马跨站
修改完成保存后重启服务:
/etc/init.d/mysqld restart
/etc/init.d/httpd restart
输入“vim /var/www/html/index.php”添加PHP探针页面并输入以下代码:
1 <?php 2 phpinfo(); 3 ?>
保存退出后在浏览器中输入localhost查看php信息:
设置文档文件夹权限:
chown apache.apache -R /var/www/html