服务器系统环境:CentOS 6.3
 
客户端系统环境:Windows 7 ultimate(x86)sp1 简体中文旗舰版
 
※  本文档描述了如何在Linux服务器配置Apache、Mysql、PHP5
 
LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl、PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,微软的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的优势,因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台。
安装前准备:
 
1、检查防火墙iptables状态
 
 [root@server ~]# service iptables status
 
注意:用法:iptables {start|stop|restart|condrestart|status|panic|save}
 
表格:filter
 
Chain INPUT (policy ACCEPT)
 
num  target    prot opt source            destination       
 
1    ACCEPT    all  --  0.0.0.0/0          0.0.0.0/0          state RELATED,ESTABLISHED
 
2    ACCEPT    icmp --  0.0.0.0/0          0.0.0.0/0         
 
3    ACCEPT    all  --  0.0.0.0/0            0.0.0.0/0         
 
4    ACCEPT    tcp  --  0.0.0.0/0          0.0.0.0/0          state NEW tcp dpt:22
 
5    REJECT    all  --  0.0.0.0/0            0.0.0.0/0          reject-with icmp-host-prohibited
 
 
 
Chain FORWARD (policy ACCEPT)
 
num  target    prot opt source              destination       
 
1    REJECT    all  --  0.0.0.0/0            0.0.0.0/0          reject-with icmp-host-prohibited
 
 
 
Chain OUTPUT (policy ACCEPT)
 
num  target    prot opt source              destination     
 
 
 
查看本机关于 IPTABLES的配置前情况
 
[root@server ~]# iptables -L
 
Chain INPUT (policy ACCEPT)
 
target    prot opt source              destination       
 
ACCEPT    all  --  anywhere          anywhere            state RELATED,ESTABLISHED
 
ACCEPT    icmp --  anywhere          anywhere           
 
ACCEPT    all  --  anywhere          anywhere           
 
ACCEPT    tcp  --  anywhere          anywhere            state NEW tcp dpt:ssh
 
REJECT    all  --  anywhere            anywhere            reject-with icmp-host-prohibited
 
 
 
Chain FORWARD (policy ACCEPT)
 
target    prot opt source              destination       
 
REJECT    all  --  anywhere            anywhere            reject-with icmp-host-prohibited
 
 
 
Chain OUTPUT (policy ACCEPT)
 
target    prot opt source              destination 
 
 
 
2、配置防火墙,开启80端口、3306端口
 
[root@server ~]# vim /etc/sysconfig/iptables
 
添加:
 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT    #允许80(http)端口通过防火墙
 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT  #允许3306(mysql)端口通过防火墙
 
备注:
 
很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,正确的应该是添加到默认的22端口这条规则的下面。
 
如下所示:
 
# Firewall configuration written by system-config-firewall
 
# Manual customization of this file is not recommended.
 
*filter
 
:INPUT ACCEPT [0:0]
 
:FORWARD ACCEPT [0:0]
 
:OUTPUT ACCEPT [0:0]
 
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 
-A INPUT -p icmp -j ACCEPT
 
-A INPUT -i lo -j ACCEPT
 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT    #允许80(http)端口通过防火墙
 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT  #允许3306(mysql)端口通过防火墙
 
-A INPUT -j REJECT --reject-with icmp-host-prohibited
 
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
 
COMMIT
 
:wq  #保存退出
 
 
 
重启防火墙使配置生效
 
[root@server ~]# service iptables restart
 
iptables:清除防火墙规则:                              [确定]
 
iptables:将链设置为政策 ACCEPT:filter                    [确定]
 
iptables:正在卸载模块:                                [确定]
 
iptables:应用防火墙规则:                              [确定]
 
 
 
最后,检查防火墙iptables状态是否生效
 
[root@server ~]# service iptables status
 
表格:filter
 
Chain INPUT (policy ACCEPT)
 
num  target    prot opt source              destination       
 
1    ACCEPT    all  --  0.0.0.0/0            0.0.0.0/0          state RELATED,ESTABLISHED
 
2    ACCEPT    icmp --  0.0.0.0/0            0.0.0.0/0         
 
3    ACCEPT    all  --  0.0.0.0/0            0.0.0.0/0         
 
4    ACCEPT    tcp  --  0.0.0.0/0            0.0.0.0/0          state NEW tcp dpt:22
 
5    ACCEPT    tcp  --  0.0.0.0/0            0.0.0.0/0          state NEW tcp dpt:80
 
6    ACCEPT    tcp  --  0.0.0.0/0            0.0.0.0/0          state NEW tcp dpt:3306
 
7    REJECT    all  --  0.0.0.0/0            0.0.0.0/0          reject-with icmp-host-prohibited
 
 
 
Chain FORWARD (policy ACCEPT)
 
num  target    prot opt source              destination       
 
1    REJECT    all  --  0.0.0.0/0            0.0.0.0/0          reject-with icmp-host-prohibited
 
 
 
Chain OUTPUT (policy ACCEPT)
 
num  target    prot opt source              destination   linux

3、关闭SELINUX
 
[root@server ~]# vim /etc/selinux/config
 
# This file controls the state of SELinux on the system.
 
# SELINUX= can take one of these three values:
 
#    enforcing - SELinux security policy is enforced.
 
#    permissive - SELinux prints warnings instead of enforcing.
 
#    disabled - No SELinux policy is loaded.
 
#SELINUX=enforcing  #注释掉强制
 
SELINUX=disabled    #关闭
 
# SELINUXTYPE= can take one of these two values:
 
#    targeted - Targeted processes are protected,
 
#    mls - Multi Level Security protection.
 
#SELINUXTYPE=targeted  #注释掉
 
:wq  #保存退出

重启系统
 
[root@server ~]# reboot
 
 
 
安装软件包:
 
4、安装Apache
 
检查是否安装httpd,使用YUM 自动安装:
 
[root@server ~]# rpm -qa |grep httpd
 
[root@server ~]# yum -y install httpd    #根据提示,输入Y安装即可成功安装
 
 
 
启动Apache
 
[root@server ~]# service httpd start
 
正在启动 httpd:httpd: apr_sockaddr_info_get() failed for server
 
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
 
                                                          [确定]
 
 
 
设为开机启动
 
[root@server ~]# chkconfig httpd on
 
 
 
重启Apache
 
[root@server ~]# service httpd restart
 
停止 httpd:                                              [确定]
 
正在启动 httpd:httpd: apr_sockaddr_info_get() failed for server
 
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
 
                                                          [确定]
 
 
查看启动Apache运行状态
 
[root@server ~]# service httpd status
 
httpd (pid  1290) 正在运行...
 
浏览器访问:http://10.1.4.44

5、安装MySQL
 
检查是否安装mysql,使用YUM 自动安装:
 
[root@server ~]# rpm –qa |grep mysql
 
 [root@server ~]# yum -y install mysql mysql-server  #是否要安装,输入Y即可自动安装,直到安装完成
 
 
 
启动MySQL
 
[root@server ~]# service mysqld start
 
                                                          [确定]
 
正在启动 mysqld:                                          [确定]
 
 
 
设为开机启动
 
[root@server ~]# chkconfig mysqld on
 
 
 
[root@server ~]# cp /etc/my.cnf /etc/my.cnfbak
 
[root@server ~]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
 
cp:是否覆盖"/etc/my.cnf"? y  #拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)
 
 
 
为root账户设置密码
 
[root@server ~]# mysql_secure_installation
 
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
 
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 
 
 
In order to log into MySQL to secure it, we'll need the current
 
password for the root user.  If you've just installed MySQL, and
 
you haven't set the root password yet, the password will be blank,
 
so you should just press enter here.
 
 
 
Enter current password for root (enter for none):  #按回车键
 
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MySQL
 
root user without the proper authorisation.
 
 
 
Set root password? [Y/n] y      #输入y
 
New password:              #输入新密码
 
Re-enter new password:        #重输入新密码
 
Password updated successfully!
 
Reloading privilege tables..
 
 ... Success!
 
 
 
By default, a MySQL installation has an anonymous user, allowing anyone
 
to log into MySQL without having to have a user account created for
 
them.  This is intended only for testing, and to make the installation
 
go a bit smoother.  You should remove them before moving into a
 
production environment.
 
 
 
Remove anonymous users? [Y/n] y    #输入y
 
 ... Success!
 
 
 
Normally, root should only be allowed to connect from 'localhost'.  This
 
ensures that someone cannot guess at the root password from the network.
 
 
 
Disallow root login remotely? [Y/n] y    #输入y
 
 ... Success!
 
 
 
By default, MySQL comes with a database named 'test' that anyone can
 
access.  This is also intended only for testing, and should be removed
 
before moving into a production environment.
 
 
 
Remove test database and access to it? [Y/n] y    #输入y
 
 - Dropping test database...
 
 ... Success!
 
 - Removing privileges on test database...
 
 ... Success!
 
 
 
Reloading the privilege tables will ensure that all changes made so far
 
will take effect immediately.
 
 
 
Reload privilege tables now? [Y/n] y    #输入y
 
 ... Success!
 
 
 
Cleaning up...
 
 
 
All done!  If you've completed all of the above steps, your MySQL
 
installation should now be secure.
 
 
 
Thanks for using MySQL!    #最后出现:Thanks for using MySQL!
 
 
 
MySql密码设置完成,重新启动 MySQL:
 
[root@server ~]# service mysqld restart
 
停止 mysqld:                                              [确定]
 
正在启动 mysqld:                                          [确定]
 
[root@server ~]# service mysqld stop
 
停止 mysqld:                                              [确定]
 
[root@server ~]# service mysqld start
 
正在启动 mysqld:                                          [确定]
 
[root@server ~]#linux
6、安装PHP5
 
检查是否安装php,使用YUM 自动安装:
 
[root@server ~]# rpm –qa |grep php
 
[root@server ~]# yum -y install php    #根据提示输入Y直到安装完成
 
 
 
安装PHP组件,使 PHP5 支持 MySQL
 
[root@server ~]# 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
 
 #这里选择以上安装包进行安装,根据提示输入Y回车
 
 
 
重启MySql
 
[root@server ~]# service mysqld restart
 
停止 mysqld:                                              [确定]
 
正在启动 mysqld:                                          [确定]
 
 
 
重启Apche
 
[root@server ~]# service httpd restart
 
停止 httpd:                                              [确定]
 
正在启动 httpd:httpd: apr_sockaddr_info_get() failed for server
 
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
 
                                                          [确定]
 
 
 
配置编辑文件:                                                         
 
7、Apache配置
 
个人习惯,修改配置文件首先要备份。
 
[root@server ~]# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.confbak  #备份
 
[root@server ~]# vim /etc/httpd/conf/httpd.conf  #编辑文件
 
小提示:
 
:set nu    #显示行号
 
:set nonu  #取消行号
 
pgUp        #上一页
 
pgDn        #下一页
 
 
 
 44 ServerTokens OS  #在44行 修改为:ServerTokens Prod (在出现错误页的时候不显示服务器操作系统的名称)
 
536 ServerSignature On  #在536行 修改为:ServerSignature Off (在错误页中不显示Apache的版本)
 
331 Options Indexes FollowSymLinks  #在331行 修改为:Options Includes ExecCGI FollowSymLinks(允许服务器执行CGI及SSI,禁止列出目录)
 
796 #AddHandler cgi-script .cgi #在796行 取消“#” 修改为:AddHandler cgi-script .cgi .pl (允许扩展名为.pl的CGI脚本运行)
 
338 AllowOverride None  #在338行 修改为:AllowOverride All (允许.htaccess)
 
759 AddDefaultCharset UTF-8 #在759行 修改为:AddDefaultCharset GB2312 (添加GB2312为默认编码)
 
554 Options Indexes MultiViews FollowSymLinks #在554行 修改为 Options MultiViews FollowSymLinks(不在浏览器上显示树状目录结构)
 
402 DirectoryIndex index.html index.html.var #在402行 修改为:DirectoryIndex index.html index.htm Default.html Default.htm index.php Default.php index.html.var (设置默认首页文件,增加index.php)
 
 76 KeepAlive Off #在76行 修改为:KeepAlive On (允许程序性联机)
 
 83 MaxKeepAliveRequests 100  #在83行 修改为:MaxKeepAliveRequests 1000 (增加同时连接数)
 
:wq  #保存退出
 
 
 
重启
 
[root@server ~]# service httpd restart
 
停止 httpd:                                              [确定]
 
正在启动 httpd:httpd: apr_sockaddr_info_get() failed for server
 
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
 
                                                          [确定]
 
[root@server ~]# cp /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.confbak    #备份
 
[root@server ~]# cp /var/www/error/noindex.html /var/www/error/noindex.htmlbak      #备份
 
[root@server ~]# rm -f /etc/httpd/conf.d/welcome.conf /var/www/error/noindex.html    #删除默认2个测试页
 
 
 
重启
 
[root@server ~]# service httpd restart
 
停止 httpd:                                              [确定]
 
正在启动 httpd:httpd: apr_sockaddr_info_get() failed for server
 
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
 
                                                          [确定]
 
 
 
浏览器访问:http://10.1.4.44

8、php配置

个人习惯,修改配置文件首先要备份。

[root@server ~]# cp /etc/php.ini /etc/php.inibak #备份

[root@server ~]# vim /etc/php.ini #编辑

小提示:

:set nu #显示行号

:set nonu #取消行号

pgUp #上一页

pgDn #下一页

946 ;date.timezone = PRC #在946行 把前面的分号去掉,改为date.timezone = PRC

386 disable_functions = #在386行 添加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列出PHP可以禁用的函数,如果某些程序需要用到这个

函数,可以删除,取消禁用。

432 expose_php = On #在432行 修改为:expose_php = Off禁止显示php版本的信息

745 magic_quotes_gpc = Off #在745行 修改为:magic_quotes_gpc = On打开magic_quotes_gpc来防止SQL注入

229 short_open_tag = Off #在229行 修改为short_open_tag = On,支持php短标签

380 ;open_basedir = #在380行 把前面的分号去掉,改为open_basedir = .:/tmp/ 设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,可以防止php木马跨站,

如果改了之后安装程序有问题,可以注销此行,或者直接写上程序的目录/data/www.osyunwei.com/:/tmp/

:wq #保存退出linux

重启MySql
 
[root@server ~]# service mysqld restart
 
停止 mysqld:                                              [确定]
 
正在启动 mysqld:                                          [确定]
 
 
 
重启Apche
 
[root@server ~]# service httpd restart
 
停止 httpd:                                              [确定]
 
正在启动 httpd:httpd: apr_sockaddr_info_get() failed for server
 
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
 
                                                          [确定]
 
 
 
在/var/www/html/目录下,创建一个index.php文件,并且编辑,如下:
 
[root@server ~]# cd /var/www/html/
 
[root@server html]# ll
 
总用量 0
 
[root@server html]# touch index.php
 
[root@server html]# vim index.php  #编辑输入下面内容
 
<?php
 
phpinfo();
 
?>
 
:wq  #保存退出
 
 
 
在客户端浏览器输入服务器:http://10.1.4.44地址,可以看到相关的配置信息!
 

注意:
 
apache默认的程序目录是/var/www/html
 
权限设置:
 
[root@server ~]# chown apache.apache -R /var/www/html
 
 
 
至此,CentOS 6.3安装配置LAMP服务器(Linux+Apache+PHP5+MySQL)完成!linux
本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2012-11/74388p6.htm

CentOS 6.3安装配置LAMP服务器(Linux+Apache+MySQL+PHP5)的更多相关文章

  1. CentOS 7.0 安装配置LAMP服务器方法(Apache+PHP+MariaDB)(转)

    转自:http://www.jb51.net/os/188488.html 作者:佚名 字体:[增加 减小] 来源:osyunwei  准备篇: CentOS 7.0系统安装配置图解教程 http:/ ...

  2. CentOS 7.0 安装配置LAMP服务器方法(Apache+PHP+MariaDB)

    一.配置防火墙,开启80端口.3306端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: #停止firewall服务 sys ...

  3. CentOS 6.6安装配置LAMP服务器(Apache+PHP5+MySQL)

    准备篇: CentOS 6.6系统安装配置图解教程 http://www.osyunwei.com/archives/8398.html 1.配置防火墙,开启80端口.3306端口 vi /etc/s ...

  4. CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)

    这篇文章主要介绍了CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)的方法,需要的朋友可以参考下 文章写的不错,很详细:IDO转载自网络: 准备篇: 1.配置防火墙,开启 ...

  5. CentOS 7.0安装配置LAMP服务器(Apache+PHP+MariaDB)

    CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.service #停止fir ...

  6. CentOS 6.3安装配置LAMP服务器(Apache+PHP5+MySQL)

    准备篇: 1.配置防火墙,开启80端口.3306端口 vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp -- ...

  7. CentOS 6.5安装配置LAMP服务器(Apache+PHP5+MySQL)的方法

    CentOS 6.5安装配置LAMP服务器(Apache+PHP5+MySQL)的方法 准备篇: 1.配置防火墙,开启80端口.3306端口vi /etc/sysconfig/iptables-A I ...

  8. CentOS 6.4安装配置LAMP服务器

    CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL) 作者: 字体:[增加 减小] 类型:转载 这篇文章主要介绍了CentOS 6.4安装配置LAMP服务器(Apache+ ...

  9. CentOS 5.11安装配置LAMP服务器(Apache+PHP5+MySQL)

    http://www.osyunwei.com/archives/8880.html 准备篇: CentOS 5.x系统安装配置图解教程 http://www.osyunwei.com/archive ...

随机推荐

  1. Real VNC软件

    RealVNC5.2.3+key http://yunpan.cn/cjchAkeIgEAPG (提取码:4092)

  2. 第47章 QR-Decoder-OV5640二维码识别—零死角玩转STM32-F429系列

    第47章     QR-Decoder-OV5640二维码识别 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.y ...

  3. 前端JavaScript之DOM使用案例

    1.弹出框点击关闭 (这个例子关键自己创建标签以及属性,不是太好想啊,而且作用相对来数也不是太大) <!DOCTYPE html> <html> <head> &l ...

  4. Oracle AWR快照管理与常见问题

    1.手动创建Snapshots exec dbms_workload_repository.create_snapshot(); OR BEGIN DBMS_WORKLOAD_REPOSITORY.C ...

  5. 【杂题总汇】NOIP2013(洛谷P1967) 货车运输

    [洛谷P1967] 货车运输 重做NOIP提高组ing... +传送门-洛谷P1967+ ◇ 题目(copy from 洛谷) 题目描述 A国有n座城市,编号从1到n,城市之间有m条双向道路.每一条道 ...

  6. Servlet学习笔记03——什么是DAO?

    1.案例 (1)添加用户 step1.建表 create table t_user( id int primary key auto_increment, username varchar(50) u ...

  7. Session的生命同期

    一.什么是Session,怎么用 Session是存放用户与web服务器之间的会话,即服务器为浏览器开辟的存储空间. 由于浏览器与服务器之间的会话是无状态(无状态的意思是会话之间无关联性,无法识别该用 ...

  8. git 代码托管使用方法

    Git代码托管 1 准备材料 在coding,github这些代码托管网站上申请一个账户. Linux平台什么需要一个git,如ubuntu 需要 $ sudo apt-get install git ...

  9. 【Hadoop/Hive/mapreduce】系列之如何删除HIVE 表格的分区

    今天的一个业务场景就是要把三年的数据从第一天不停的融合起来,每一天作为表格一个新的分区.由于空间有限,数据量很大,可能每天数据都是几十个G的大小.所以我需要做的一点就是在融合这一天之后,删除一天的分区 ...

  10. [Luogu3806]点分治

    询问树上是否存在距离为k[i]的点对 直接点分治把所有距离预处理出来,然后O(1)回答即可 Code #include <cstdio> #include <algorithm> ...