linux下的php+mysql+apache安装
我有这个装lamp的想法完全是出于偶然,其实我以前一直都是在windows环境下装了个wamp使用的,今天突然我们新闻社的网站出了点问题,后台进不去了,所以我想把网站上的东西拷贝到我的电脑上调试。我们新闻社的网站用的是dede的模板,基于php的,所以我便准备用我以前的wamp来查查,由于前一段时间我装了windows7所以wamp得重新装,重新装不要紧,最要命的是装了之后apache服务总是开启不了,测试80端口没有被占用,弄的我相当郁闷,所以我有了脱离windows到linux装lamp的想法。我开始觉得这就是一个疯狂的想法,因为我最初装集成的wamp就是因为自己不会将apache、php、mysql一个一个组装,这次准备到linux一件一件的组装确实是一个挑战,但是我在网站上还是找到了比较完整的lamp安装手册,于是lamp安装便开始了……
首先当然要在linux环境下了,这便完成了“L”。
然后便是“A”,apache的安装。首先下载httpd-2.2.11.tar.bz2,因为这是我找到的最新的版本。然后首先确保你的系统有build-essential,这个是用来编译,还有flex,bison。
sudo apt-get install build-essential flex bison
安装编译所需要的软件。然后解压缩软件包并进入解压后的目录:
tar xvf httpd-2.2.11.tar.bz2
cd httpd-2.2.11
然后进行配置,下边配置的参数是比较常用的
./configure --prefix=/usr/local/apache/ --enable-rewrite --enable-so
接着编译安装
make
sudo make install
编译时间不算长,如果顺利会有一下提示
httpd: Could not reliably determine the……(省略)……using 127.0.0.1 ……
这是没有设置域名和ip导致的不用管它
然后打开浏览器输入127.0.0.1如果没问题的话浏览器会显示It Works!字符
接下来是更改apache配置文件:
我的文本编辑器用的是vim,如果你用gedit也可以
sudo vim /usr/local/apache/conf/httpd.conf
在ServerAdmin那行填上你的Email地址,在ServerName那一行填上你的域名或者机器的IP,当然也可以不填,这样就会每次启动出现上述的废话,在DocumentRoot那行填上你所希望的网站文件的目录。这里我喜欢把网站放在/var下的一个叫做website的目录里,所以我填上”/var/website”。特别注意,webstie后面不要加“/”。然后在<Directory />的下方添加一下信息
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
下方也有一个,<Directory "/usr/local/apache/htdocs">
还有下边有个
<IfModule dir_module>
DirectoryIndex index.php
</IfModule>
这是修改默认主页的设置,我设为index.php为默认主页
修改配置文件完毕
这是默认的网页存放目录,我们要改一下,改为刚才我们建立的那个website(权限为775以防不能访问)文件夹
然后在终端输入:
sudo mkdir /var/website
创建网站目录。并且在这个目录里面放上一个名为index.html的测试文件,内容随便你怎么写啦,我写的是“Hellow World!”,仅此而已。这时候需要重启一下Apache服务器。在终端输入:
sudo /usr/local/apache/bin/apachectl stop
sudo /usr/local/apache/bin/apachectl start
这时候刷新网页的话便显示刚才的网页内容了:Hello World!
现在进行到‘M’,mysql的安装了。先下载mysql-max-5.0.27-linux-i686-glibc23.tar.gz
然后解压,进入目录:
tar xvf mysql-max-5.0.27-linux-i686-glibc23.tar.gz
sudo mv mysql-max-5.0.27-linux-i686-glibc23 /usr/local/
sudo ln –s /usr/local/ mysql-max-5.0.27-linux-i686-glibc23 /usr/local/ mysql
现在我们来为mysqld增加一个登录用户和组:
sudo groupadd mysql
sudo useradd -g mysql mysql
然后我们来进入mysql所在的目录执行mysql_install_db脚本,用来初始化mysql数据库的授权表,其中贮存了服务器访问允许。
cd /usr/local/mysql
TMPDIR=/tmp/
MYSQL_UNIX_PORT=/tmp/mysql.sock
export TMPDIR MYSQL_UNIX_PORT
scripts/mysql_install_db --user=mysql
如果顺利的话会输出一些信息,这些信息的最后会有http://www.mysql.com
最后我们将程序二进制的所有权改为root,数据目录的所有权改为运mysqld的用户。在终端输入:
chown-R root .(注意最后有个点)
chown-R mysql data
chgrp-R mysql .(注意最后有个点)
第一个命令将/usr/local/mysql下文件的所有属性改为root用户。第二个命令将数据目录的所有属性改为mysql用户。第三个命令将组属性改为mysql组。现在安装基本就完毕了。我们来测试一下,在终端输入:sudo bin/mysqld_safe--user=mysql &
应该会进入光标不停闪动的状态,这就代表mysql顺利启动了。
这时候我们再打开一个终端,
在里面输入:
bin/mysqladmin version 可以得到版本信息
bin/mysqladmin variables 可以得到一个巨大的表格
MySQL安装完以后会以用户root创建两个账户。这些账户为超用户账户,可以执行任何操作。初始root账户的密码为空,因此任何人可以用root账户不用任何密码来连接MySQL服务器,并具有所有权限。在Linux中这两个root账户均用于从本机连接,一个账户主机名应指定为 localhost,另一个账户为实际的主机名或IP号。此外Mysql还创建了两个匿名用户账户,每个账户的用户名均为空。匿名账户没有密码,因此任何人可以使用匿名账户来连接MySQL服务器。这样无疑太危险了,所以我们要给这4个帐号设上密码:
/usr/local/mysql/bin/mysql-u root
mysql> SET PASSWORD FOR ''@'localhost'= PASSWORD('newpwd');
mysql> SET PASSWORD FOR ''@'host_name'= PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'localhost'= PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'host_name'= PASSWORD('newpwd');
用服务器主机名替换SET PASSWORD语句中的host_name。如果你不知道是哪个主机名,在SET PASSWORD之前执行下面的语句:
mysql> SELECT Host, User FROM mysql.user;
如果想以root进入mysql的话,要输入命令:
/usr/local/mysql/bin/mysql -u root -p
接下来输入密码便进入了
mysql完毕!!
我们进入到最后的“P”,PHP的安装。这是完成lamp的最后一步了。我装的时候用的是php5.2.11,首先下载解压,进入目录:
tar xvfphp-5.2.11.tar.gz
然后进入目录,开始编译:
cdphp-5.2.11
./configure --prefix=/usr/local/php–with-xml --with-apxs2=/usr/local/apache/bin/apxs--with-mysql=/usr/local/mysql
这时候会出错,出错信息是:
configure: error: xml2-config not found. Please check your libxml2 installation
这时候需要我们安装libxml2
sudo apt-get install libxml2 libxml2-devel
然后重新配置,配置完以后再在终端输入:
make
sudo make install
就可以完成安装了。这时候我们要再次修改一下httpd.conf文件,让Apache支持PHP。在终端输入:
sudo gedit /usr/local/apache/conf/httpd.conf
找到AddType application/x-gzip .gz .tgz这一句,然后在这句下边添加:
AddTypeapplication/x-httpd-php .php
AddTypeapplication/x-httpd-php-source .phps(小心有空格)
并且修改位于安装文件夹php-5.2.11内的文件php.ini-dist,去掉extension=php_mysql.dll之前的分号,然后把它拷贝到/usr/local/php/lib/下,并命名为php.ini:
sudo cp php.ini-dist /usr/local/php/lib/php.ini
然后我们重启Apache服务器:
sudo /usr/local/apache/bin/apachectl restart
好,最后我们来写一个测试页面测试一下PHP有没有正常工作。创建一个文件叫做index.php,将其放入/var/website目录内,一定要注意权限,不要忘记设为755,其文件内容如下:
<?php
phpinfo();
?>
然后刷新网页,如果出现配置信息的PHP网页说明lamp就全部完成了。