本科的时候选修过一门叫做web开发的课程,做的也是类似LAMP的东西。可惜随着时间的推移,以及当时所学的肤浅,以致现今都难以回想起当时具体做的是什么。这次来公司后才了解互联网应用是充满前途,自己之前在校园里对这些方面是一无所知,甚是惭愧。好了,废话这么多,赶紧进入正题。
首先,说一下我的系统环境吧。
操作系统:Fedora 9
内核:2.6.27.25
总所周知,LAMP是linux + Apache + Mysql +php的简称,这是web服务端开发的一个经典组合。之前,我一直在使用Linux系统,对于Apache和Mysql也有一定的了解。但php仅仅知道它是一个脚本语言,可以用来开发网站。来公司后发现内部的很多业务都是用php编写,而且大家都说至少得会一门脚本语言。这次布置的任务是编写一个RSS阅读器,允许用C/C++编写客户端程序,也可以用php编写web服务。后来我从网络上了解,客户端的RSS阅读器已经被用户淘汰了,web端的RSS阅读器才是主流。虽然不会php,但我觉得自己还是应该去编写主流的应用产品,而不能单纯为了任务而工作。工作最重要的是获取价值。
网上有很多写如何安装配置LAMP的,但大多数都是用源码安装。我看到一些帖子说这些配件间的版本也会相互影响工作,为了避免自己遇到这种纯经验性的问题(而且mysql的源码安装包一直下载不下来)。我另辟了一条路。
Fedora有个软件源服务:yum。我觉得通过yum来获取适合我系统的LAMP版本。
接着,我运行命令:yum search mysql; yum search Apache; yum search php;
命令输出显示更新源都有相应的安装,然后执行yum install。原来我的系统已经安装了Apache和php,只有mysql没有安装。
检验系统是否安装好了LAMP,可以通过以下过程:
$sudo service mysqld status;
$sudo service httpd status;
以上两个命令是分别查看mysql服务器和Apache服务器的状态。如果没有开启的话,可以分别通过以下命令先把服务开启。
$sudo service mysqld start;
$sudo service httpd start;
(1)检验mysql,可以通过直接输入命令: $mysql
如果显示信息如下,则说明安装成功:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.77 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
(2)检验Apache,可以通过在浏览器的地址栏内输入:http://localhost/
如果显示了页面标题为Fedora Test Page的页面,则说明成功。
注:如果需要在开机后自动启动mysqld和httpd服务,则可以修改/etc/rc.d/rc.local文件,在文件中添加如下两条命令:
/bin/sh -c "/etc/rc.d/init.d/mysqld start"
/bin/sh -c "/etc/rc.d/init.d/httpd start" (为了让大家看清楚中间的空格,我多敲了几个阿)
以上就是一个简单的安装过程,接下来我说一下配置过程。
1.Apache的配置
网络上一些很多帖子讲的都是通过源码安装后再如何配置Apache,里面提到了需要修改httpd.conf文件,主要是添加对php文件的支持。这些帖子提到httpd.conf文件都是在/usr/local/Apache目录下,但他们是用源码安装的,我是用rpm干的,系统自动分配了路径。于是我用一个命令查找了一下,命令如下:
$whereis httpd
发现/etc下有它的踪影。根据经验,我直奔/etc,于是又是一堆命令:
$cd /etc
$file httpd
$cd httpd
看到了httpd/下面有不少好东西,发现httpd.conf是在conf/目录下。而且还有一个conf.d/目录,这个目录下竟然还有php.conf,我阅读了这个目录的README和php.conf。最终发现我根本就没有必要去修改httpd.conf,因为我的安装包会自动去执行conf.d/php.conf作为Apache配置的一部分。哈哈,懒人有懒福阿!
最后说一下Apache服务器的工作目录。从httpd.conf中可以看到工作目录是在/var/www/下,自定义的网页文件应该放置在/var/www/html/下,之后就可以通过浏览器直接获取。例如我在/var/www/html/中编写了一个phpinfo.php,内容如下:
<?php
phpinfo();
?>
然后浏览器地址栏内输入http://localhost/phpinfo.php,然后就能看到相应的网页信息。
2.php的配置
细心的读者可以认真看看http://localhost/phpinfo.php这个网页输出的内容,大家会发现里面有很多很隐私的数据。如果我的服务器又开放端口,那很多人就可以轻易的访问我的服务器了,太危险了!
所在在php的配置中,最重要的是做一些提升安全性的工作。执行以下命令:
$sudo vi /etc/php.ini
然后在php.ini文件中找到 "disable_functions =",并把这行改成如下内容:
disable_functions = phpinfo,system,chroot,escapeshellcmd,escapeshellarg,proc_open,proc_get_status,socket_create,socket_bind,
socket_listen,socket_accept,socket_write,socket_read
我就对php做了这么一项工作,暂时这样吧。
3.mysql的配置
对于mysql的配置工作,我只是简单的使用mysql命令添加了root用户的密码,命令如下:
# /usr/bin/mysqladmin -u root password ******(星星是密码,为了俺的安全,我只用这个星星来表征一下,意会阿)
然后又用mysql命令查看了一些默认存在的数据库。
另外提一点,我觉得了解LAMP的版本还是比较重要的,如果大家是按照我的方法安装的LAMP,大家可以使用rpm -q命令来查询具体版本。命令具体如下:
$rpm -q httpd
$rpm -q mysql
$rpm -q php
最后,感谢一下两篇帖子的原作者(因为我不确定我看的是否是原作),链接地址如下:
http://www.linuxidc.com/Linux/2011-01/31566p2.htm
http://www.windows7en.com/safe/4562_5.html
我接下来的工作就是迅速学习php语法,加油!