CentOS 5.5使用yum安装Apache+PHP+MySQL

<p>一、安装centos5.5操作系统</p><p>CentOS 开发社区已发布了新的 5.5 版本。CentOS 5.5 基于 Red Hat Enterpris Linux 5.5.0,其中包括 Kernel 2.6.18、Apache 2.2、PHP 5.1.6、MySQL 5.0、PostgreSQL 8、GNOME 2.16、KDE 3.5、OpenOffice.org 2.3、Firefox 3.0、Evolution 2.12 等等。此外,CentOS 5.3 更新了美工设计,并根据用户的请求恢复了 Contrib 仓库。</p><p>CentOS 5.5 支持 i386 及 x86_64 架构,其 ISO 映像可从以下地址获取。http://www.wljcz.com/html/caozuoxitong/Linux/2009/0726/409.html</p><p>二、系统安装</p><p>安装CentOS 5.5是做服务器,所以没有用的,一概不装;具体哪些不装,自己看着办吧:</p><p>三、安装Apache+php+Mysql</p><p>用yum安装前.先是替换为中国CentOS5.3镜像服务器!快速好用的yum更新源:http://www.wljcz.com/html/caozuoxitong/Linux/2009/0726/410.html 此文章有详细的介绍,按照提供的步骤修改好更新源后,就可以方便的用yum命令快速安装软件了.</p><p></p><p>1、更新系统内核到最新. yum -y update</p><p>安装Apahce, PHP, Mysql, 以及php连接mysql库组件</p><p></p><p>代码:</p><pre class="brush:bash;toolbar:false">yum-yinstallhttpdphpmysqlmysql-serverphp-mysql</pre><p></p><p>2、安装mysql扩展</p><p></p><p>代码:</p><pre class="brush:bash;toolbar:false">yum-yinstallmysql-connector-odbcmysql-devellibdbi-dbd-mysql</pre><p>或一次性粘贴安装:</p><p></p><p>代码:</p><pre class="brush:bash;toolbar:false">yum-yinstallhttpdphpmysqlmysql-serverphp-mysqlhttpd-manualmod_sslmod_perlmod_auth_mysqlphp-mcryptphp-gdphp-xmlphp-mbstringphp-ldapphp-pearphp-xmlrpcmysql-connector-odbcmysql-devellibdbi-dbd-mysql</pre><p>3、设置mysql数据库root帐号密码。</p><p></p><p>代码:</p><p>mysqladmin -u root password &#39;newpassword&#39;</p><p>&quot;newpassword&quot; 代表的是你想要设置的密码,新安装的mysql的root根用户密码默认为空,设置密码后可以让mysql数据库更安全</p><p></p><p>代码:</p><pre class="brush:bash;toolbar:false">mysql-uroot-p(此时会要求你输入刚刚设置的密码,输入后回车即可) mysql&gt;DROPDATABASEtest;(删除test数据库) mysql&gt;DELETEFROMmysql.userWHEREuser=&quot;;(删除匿名帐户) mysql&gt;FLUSHPRIVILEGES;(重载权限)</pre><p></p><p>4、按照以上的安装方式, 配置出来的默认站点目录为/var/www/html/新建一个php脚本:</p><p></p><p>代码:</p><pre class="brush:php;toolbar:false">&lt;?php phpinfo(); ?&gt;</pre><p>四、 配置防火墙</p><p>添加允许访问HTTP、FTP端口</p><p></p><p>代码:</p><pre class="brush:bash;toolbar:false">iptables-IRH-Firewall-1-INPUT-mstate--stateNEW-mtcp-ptcp--dport21-jACCEPT iptables-IRH-Firewall-1-INPUT-mstate--stateNEW-mtcp-ptcp--dport80-jACCEPT</pre><p>重启iptables: service iptables restart</p><p>五、安装phpMyAdmin</p><p>进入phpMyAdmin官方下载phpMyAdmin,3.1以上需php 5.2以上,上传到你的网站目录下,然后进行配置。只需几步即可搞定。</p><p>config.sample.inc.php更名为config.inc.php,然后打开config.inc.php文件,进行以下修改;</p><p>代码:</p><pre class="brush:php;toolbar:false">//$cfg[&#39;Servers&#39;][$i][&#39;controluser&#39;]=&#39;pma&#39;; //$cfg[&#39;Servers&#39;][$i][&#39;controlpass&#39;]=&#39;pmapass&#39;; //$cfg[&#39;Servers&#39;][$i][&#39;pmadb&#39;]=&#39;phpmyadmin&#39;; //$cfg[&#39;Servers&#39;][$i][&#39;bookmarktable&#39;]=&#39;pma_bookmark&#39;; //$cfg[&#39;Servers&#39;][$i][&#39;relation&#39;]=&#39;pma_relation&#39;; //$cfg[&#39;Servers&#39;][$i][&#39;table_info&#39;]=&#39;pma_table_info&#39;; //$cfg[&#39;Servers&#39;][$i][&#39;table_coords&#39;]=&#39;pma_table_coords&#39;; //$cfg[&#39;Servers&#39;][$i][&#39;pdf_pages&#39;]=&#39;pma_pdf_pages&#39;; //$cfg[&#39;Servers&#39;][$i][&#39;column_info&#39;]=&#39;pma_column_info&#39;; //$cfg[&#39;Servers&#39;][$i][&#39;history&#39;]=&#39;pma_history&#39;; //$cfg[&#39;Servers&#39;][$i][&#39;designer_coords&#39;]=&#39;pma_designer_coords&#39;;</pre><p>去掉每行前面的//注释</p><pre class="brush:php;toolbar:false">$cfg[&#39;blowfish_secret&#39;]=&quot;;|修改为|$cfg[&#39;blowfish_secret&#39;]=&#39;http&#39;; $cfg[&#39;Servers&#39;][$i][&#39;controluser&#39;]=&#39;pma&#39;;|把&#39;pma&#39;修改为你的帐号|$cfg[&#39;Servers&#39;][$i][&#39;controlpass&#39;]=&#39;pmapass&#39;;|把&#39;pmapass设置为你的mysql登录密码 $cfg[&#39;blowfish_secret&#39;]=&quot;;|添加短语密码例如:$cfg[&#39;blowfish_secret&#39;]=&#39;onohot&#39;;</pre><p>六、安装php的扩展</p><p>代码:</p><pre class="brush:bash;toolbar:false">yum-yinstallphp-gdphp-xmlphp-mbstringphp-ldapphp-pearphp-xmlrpc</pre><p>七、安装apache扩展</p><p>代码:</p><pre class="brush:bash;toolbar:false">yum-yinstallhttpd-manualmod_sslmod_perlmod_auth_mysql</pre><p>到此为止centos5.3下的php环境基本就配置完成了,用命令启动服务即可使用。</p><p>八、如果想升级PHP的话</p><p>提及php需要升级到5.2以上,而centos 5.x目前提供php版本为5.1.6,</p><p>通过以下方法升级PHP到5.2比较方便,现推荐给大家。</p><p>先将以下地址导入。</p><pre class="brush:bash;toolbar:false">#rpm--importhttp://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka #vi/etc/yum.repos.d/CentOS-Base.repo增加下面信息 [utterramblings] name=Jason&#39;sUtterRamblingsRepo baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka</pre><p>执行命令,自动升级。</p><pre class="brush:bash;toolbar:false">yumupdatephp-y yuminstalllibmcrypt-y</pre><p>1. 更新系统内核到最新.</p><pre class="brush:bash;toolbar:false">[root@linuxfei~]#yum-yupdate</pre><p>系统更新后,如果yum安装时提示错误信息,请执行以下命令修复.</p><pre class="brush:bash;toolbar:false">[root@linuxfei~]#rpm–import/etc/pki/rpm-gpg/RPM-GPG-KEY*</pre><p>2. 安装Apahce, PHP, Mysql, 以及php连接mysql库组件</p><pre class="brush:bash;toolbar:false">[root@linuxfei~]#yum-yinstallhttpdphpmysqlmysql-serverphp-mysql</pre><p>//安装mysql扩展</p><pre class="brush:bash;toolbar:false">[root@linuxfei~]#yum-yinstallmysql-connector-odbcmysql-devellibdbi-dbd-mysql</pre><p>//安装php的扩展</p><pre class="brush:bash;toolbar:false">[root@linuxfei~]#yum-yinstallphp-gdphp-xmlphp-mbstringphp-ldapphp-pearphp-xmlrpc</pre><p>//安装apache扩展</p><pre class="brush:bash;toolbar:false">[root@linuxfei~]#yum-yinstallhttpd-manualmod_sslmod_perlmod_auth_mysql</pre><p>一次性粘贴安装:</p><pre class="brush:bash;toolbar:false">[root@linuxfei~]#yum-yinstallhttpdphpmysqlmysql-serverphp-mysqlhttpd-manualmod_sslmod_perlmod_auth_mysqlphp-mcryptphp-gdphp-xmlphp-mbstringphp-ldapphp-pearphp-xmlrpcmysql-connector-odbcmysql-devellibdbi-dbd-mysql</pre><p>3. 启动服务配置</p><pre class="brush:bash;toolbar:false">[root@linuxfei~]#/sbin/chkconfighttpdon[设置apache为自启动] [root@linuxfei~]#/sbin/chkconfig–-addmysqld[mysql服务] [root@linuxfei~]#/sbin/chkconfigmysqldon[mysqld服务] [root@linuxfei~]#/sbin/servicehttpdstart[自启动httpd服务] [root@linuxfei~]#/sbin/servicemysqldstart[自启动mysqld服务]</pre><p>4.设置mysql数据库root帐号密码。</p><pre class="brush:bash;toolbar:false">[root@linuxfei~]#mysqladmin-urootpassword&#39;linuxfei&#39;[引号内填密码] [root@linuxfei~]#mysql-uroot-p←通过空密码用root登录 Enterpassword:linuxfei←在这里输入密码 WelcometotheMySQLmonitor.Commandsendwith;or\g.←确认用密码能够成功登录 YourMySQLconnectionidis5toserverversion:4.1.20 Type&#39;help;&#39;or&#39;\h&#39;forhelp.Type&#39;\c&#39;toclearthebuffer.</pre><p>5.安装phpmyadmin</p><pre class="brush:bash;toolbar:false">[root@linuxfei/]#wgethttp://gd2.down.chinaz.com:808/数据管理/phpMyAdmin-3.tar.gz --2010-03-2316:38:18--http://gd2.down.chinaz.com:808/??????/phpMyAdmin-3.x.tar.gz Resolvinggd2.down.chinaz.com...121.11.80.154 Connectingtogd2.down.chinaz.com|121.11.80.154|:808...connected. HTTPrequestsent,awaitingresponse...200OK Length:4700100(4.5M)[application/x-gzip] Savingto:`phpMyAdmin-3.x.tar.gz&#39; 100%[======================================&gt;]4,700,100134K/sin37s 2010-03-2316:38:56(123KB/s)-`phpMyAdmin-3.x.tar.gz&#39;saved[4700100/4700100] 解压phpmyadmin [root@centos5/]#tarzxvfphpMyAdmin-3.x.tar.gz [root@linuxfei/]#mvphpMyAdmin-3.3.1-all-languages/var/www/html/phpmyadmin 将解压出来的目录移动到/var/www目录下并改名为phpmyadmin 修改phpmyadmin根目录下的config.sample.inc.php重命名为config.inc.php 打开并编辑config.inc.php $cfg[&#39;blowfish_secret&#39;]=&#39;&#39;; 然找到下边这两行并把//去除 //$cfg[&#39;Servers&#39;][$i][&#39;controluser&#39;]=&#39;pma&#39;;mysql用户名 //$cfg[&#39;Servers&#39;][$i][&#39;controlpass&#39;]=&#39;pmapass&#39;mysql密码</pre><p>apache配置</p><p>/etc/httpd/conf/httpd.conf</p><p> 最主要的配置文件,不过很多其他的distribution都将这个文件拆成数个小文件,分别管理不同的参数。但是最主要配置文件还是以这个文件名为主。</p><p>/etc/httpd/conf.d/*.conf</p><p> 这个事CentOS的特色之一,如果你不想修改原始配置文件httpd.conf的话,那么可以将你自己的额外参数独立出来,而启动apache时,这个文件就会被读入到主要配置文件。</p><p>/usr/lib/httpd/modules</p><p> apache支持很多的模块,所以您想要使用的模块默认都放置在此目录</p><p>/var/www/html</p><p>这里是CentOS默认的&quot;首页&quot;所在目录。</p><p>/var/www/error</p><p>如果因为主机设置错误,或者是浏览器端要求的数据错误,在浏览器上出现的错误信息就已这个目录的默认信息为主。</p><p>/var/www/icons</p><p>提供apache的一些小图标</p><p>/var/www/cgi-bin</p><p>默认给一些可执行的CGI程序放置的目录</p><p>/var/log/httpd</p><p>默认apache的日志文件都放在这里,对于流量大的网站来说,这个目录要很小心,因为这个文件很容易变的很大,您需要足够的空间哦</p><p>/usr/sbin/apachectl</p><p> 这是Apache的主要执行文件,这个执行文件其实是shell script,它可以主动检测系统上的一些设置值,好让您启动Apache时更简单</p><p>/usr/sbin/httpd</p><p>这是主要的apache的二进制文件</p><p>/usr/bin/htpasswd</p><p> 当您想登陆某些网页时,需要输入账号与密码。那么Apache本身就提供一个最基本的密码保护方式。该密码的产生就是通过这个命令实现的</p><p>至于MySQL方面,您需要知道的几个重要目录与文件有以下几个:</p><p>/etc/my.cnf:这是Mysql的配置文件,包括您想要进行mysql数据库的最佳化,或者是正对mysql进行一些额外的参数指定,都可以在这个文件里实现</p><p>/usr/lib/mysql:这个目录是MySQL数据库放置的位置,当启动任何MySQL的服务器时,请务必记得在备份时,将此目录完整的备份下来。</p><p>另外,在PHP方面,应该了解以下几个文件。</p><p>/usr/lib/httpd/modules/libphp4.so:PHP提供给apache使用的模块,这个关系我们能否在apache网页上面设计php程序语言的最重要文件</p><p>/etc/httpd/conf.d/php.conf:你要不要手动将该模块写入Httpd.conf中呢?不需要,因为系统已经主动将php设置参数写入到这个文件中了,而这个文件会在apache重新启动时被读入。</p><p>/etc/php.ini:这是PHP的主要配置文件,包括PHP能不能允许用户上传文件,能不能允许某些低安全性的标志等,都在这个配置文件中设置。</p><p>/etc/php.d/mysql.ini /usr/lib/php4/mysql.so:PHP能否可以支持MySQL接口就看这两个文件了。这两个文件是由php-mysql软件提供的</p><p>/usr/bin/phpize /usr/include/php:如果您以后想要安装类似PHP加速器可以让浏览速度加快的话,那么这个文件与目录就需要存在,否则加速器软件没法用。</p><p>httpd.conf的基本设置</p><p>首先,你需要在/etc/hosts内需要有个一个完整的主机名,否则在重启apache服务时,会提示找不到完整的主机名。</p><p>httpd.conf的基本设置是这样的:</p><p> 次设置项目内的相关参数</p><p>例如,你想要针对首页/var/www/html提供额外的功能,那么可以进行如下设置:</p><p> Options Indexes</p><p> ......</p><p>针对主机环境的设置项目<br/></p><p>#vi /etc/httpd/conf/httpd.conf</p><p>ServerTokens OS</p><p># 这个项目在告诉客户端WWW服务器的版本和操作系统,不需要改编它</p><p>#如果你不想告诉太多的主机信息,将这个项目的OS改成Minor</p><p>ServerRoot &quot;/etc/httpd&quot;</p><p>#这个是设置文件的最顶层目录,通常使用绝对路径,下面某些数据设置使用相对路径时</p><p>#就是与这个目录设置值有关的下层目录,不需要更改它</p><p>ServerRoot</p><p>设定Apache 安装的绝对路径</p><p>TimeOut</p><p>设定 服务器接收至完成的最长等待时间</p><p>KeepAlive</p><p>设定服务器是否开启连续请求功能,真实服务器一般都要开启</p><p>Port</p><p>设定http服务的默认端口。</p><p>User/Group</p><p>设定 服务器程序的执行者与属组,这个一般是apache</p><p>下面我们就针对Apache做几个实验</p><p>1:我们测试把默认网站目录改到root家目录下</p><pre class="brush:bash;toolbar:false">新建/root/website目录 #mkdir-p/root/website #echo&quot;websitepage&quot;&gt;&gt;/root/website/index.html #vi/etc/httpd/conf/httpd.conf 找到DocumentRoot&quot;/var/www/html&quot;这一段//apache的根目录 把/var/www/html这个目录改到/root/website 在找到//定义apache/var/www/html这个区域 把/var/www/html改成/root/website</pre><p>这样我们就把apahce的默认路径改掉了</p><p>然后重启服务</p><p>#service httpd restart </p><p>//这里在你重启服务的时候,可能会报错,说找不到目录,这个主要是由于selinux导致的</p><p>那怎么解决呢?有2个办法,关掉selinux </p><p>#setenforce 0</p><p>或者更改/root/website这个文件的selinux属性,让它匹配httpd这个服务器的要求</p><p>怎么改?我们可以复制/var/www/html这个目录的selinux属性</p><pre class="brush:bash;toolbar:false">#chcon-R--reference/var/www/html/root/website</pre><p>然后在重启服务,之后你就看到它没有报错了</p><p>不过你去访问localhost的时候,会发现访问拒绝 这是为什么呢?主要是因为你的/root的权限是750,ahache这个用户没有权限访问,你需要更改掉权限,可以这样改</p><pre class="brush:bash;toolbar:false">#chmod-R755/root</pre><p>然后去访问 发现正常了</p><p>2:基于名称的虚拟主机</p><p>需要两个域名解析到你的服务器,对应关系是</p><pre class="brush:bash;toolbar:false">/var/www/serverserver.example.com /var/www/clientclient.example.com 当访问这两个域名时,可以分别显示出不同文件里面主页的内容 #echo&quot;serverpage&quot;&gt;&gt;/var/www/server/index.html #echo&quot;clientpage&quot;&gt;&gt;/var/www/client/index.html</pre><p>然后我们编辑一个配置文件</p><pre class="brush:bash;toolbar:false">#vi/etc/httpd/conf.d/virtual.conf//记住conf.d里面的内容也是apache的配置文件 添加如下内容: NameVirtualHost192.168.76.133:80 ServerNameservice.example.com DocumentRoot/var/www/server ServerNameclient.example.com DocumentRoot/var/www/client #servicehttpdrestart</pre><p>这样基于名称的虚拟主机就配置好了</p><p>如果你没有DNS你可以再你的机器上hosts文件里加记录 linux在/etc/hosts这个文件 windows在C:\windows\system32\drivers\etc\hosts文件</p><p>加上这两行</p><pre class="brush:bash;toolbar:false">192.168.76.133server.example.com 192.168.76.133client.example.com</pre><p>这样你在去测试,就会发现访问不同的域名显示不同的内容了 这样基于名称的虚拟主机就配置好了!</p><p>3:基于IP地址的虚拟主机</p><p>先添加一个临时网卡</p><pre class="brush:bash;toolbar:false">#ifconfigeth0:0192.168.76.132//临时使用,重启后就会消失 然后便捷virtual.conf文件 #vi/etc/httpd/conf.d/virtual.conf 把内容修改为 #NameVirtualHost192.168.76.133:80 ServerNameservice.example.com DocumentRoot/var/www/server ServerNameclient.example.com DocumentRoot/var/www/client</pre><p>让后你在用ip访问,发现也能显示不同的内容,或者你编辑hosts文件,用域名访问也没问题</p><p>这样基于IP地址的虚拟主机也成功了!</p><p>4:别名</p><p>在/etc/httpd/conf/httpd.conf里加入</p><p>Alias /test &quot;/root/website/&quot; // 别名 这样你用192.168.76.133/test访问 也会显示192.168.76.133的页面</p><p>这个地方需要注意的就是/test 还是/test/ 这个是用区别的 你用/test 那么你访问的时候只能用192.168.76.133/test访问 如果你用/test/ 那么192.168.76.133/test/访问,而/test将不会放你访问</p><p>忘了这里你的先把/etc/httpd/conf.d目录里面刚刚设置的虚拟目录注释掉 不然没法访问,是因为做了虚拟目录,而httpd.conf里面的设置就无法访问 当然可以用localhost来访问,其他的访问都不行</p><p>5:实现网页的资源下载</p><p>首先添加别名</p><pre class="brush:bash;toolbar:false">#vi/etc/httpd/conf/httpd.conf 在Alias/test&quot;/root/website/&quot;后面加入 Alias/down&quot;/var/ftp/pub&quot; 让后对/var/ftp/pub区域设置参数 OptionsIndexesMultiViews AllowOverrideNone Orderallow,deny Allowfromall</pre><p>在Options 加入 MultiViews //没有index时自动列出目录文档</p><p>然后重启服务,这样http://192.168.76.133/down/里面就可以列出/var/ftp/pub里面的文件了,试着点一个另存为,是否可以下载? 呵呵 成功!</p><p>6:.htpasswd的实现</p><pre class="brush:bash;toolbar:false">#vi/etc/httpd/conf/httpd.conf 我们针对刚刚做的/var/ftp/pub来做 加入如下信息 Alias/down&quot;/var/ftp/pub/&quot; OptionsIndexesMultiViews AllowOverrideAuthConfig Orderallow,deny Allowfromall AuthTypeBasic AuthName&quot;thisistest&quot; AuthUserFile/etc/httpd/htpasswd RequireUsertest</pre><p>然后重启httpd服务,</p><p>让后生成.htpasswd用户密码</p><pre class="brush:bash;toolbar:false">htpasswd-c/etc/httpd/htpasswdtest</pre><p>让后去访问192.168.76.133/down会需要密码这样就成功了</p>
RangeTime:0.009234s
RangeMem:223.59 KB
返回顶部 留言