Ubuntu 官方文档中文翻译版

 

ubuntu下搭建 Apache+MySQL+PHP开发环境

Translated by haria1988

资料来源ubuntu中文论坛

这个教程是帮助人们在Ubuntu上搭建一个LAMP(Linux+Apache+MySQL+PHP)服务器,使用如下软件:apache2,PHP5(在ubuntu6.10或更低版本使用PHP4),MySQL4.1或者5.0。

在这里我针对ubuntu7.04及以后版本适用的步骤进行翻译。

ubuntu7.04以后的版本中安装默认的LAMP开发环境

7。04以后的版本中,ubuntu基本系统己经包含了Tasksel,你即可以使用tasksel安装LAMP也可以通过指定一些列的软件包来安装LAMP.

使用tasksel命令如下:

sudo tasksel installlamp-server

通过指定软件包安装,使用如下命令:

sudo apt-get install apache2 php5-mysqllibapache2-mod-php5 mysql-server

如何卸载LAMP开发环境

卸载LAMP开发环境,你需要卸载下面这些包:(在这里假定没有其他程序依赖于这些包,你可以先测试卸载一下,以防止你想要的软件被卸载)

sudo apt-get remove apache2apache2-mpm-prefork apache2-utils apache2.2-common

libapache2-mod-php5 libapr1 libaprutil1libdbd-mysql-perl libdbi-perl

libmysqlclient15off libnet-daemon-perllibplrpc-perl libpq5 mysql-client-5.0

mysql-common mysql-server mysql-server-5.0php5-common php5-mysql

如果想同时删除所有的配置文件的话,那么可以加上—purge参数。想要删除对apache的所有的配置参数,可以在卸载了该软件包之后,手动删除/etc/apache2目录。

安装apache2

使用如下命令安装apache2:

sudo apt-get install apache2

apache问题解决(注意了)

如果你遇到如下错误

apache2: Could not determine the server'sfully qualified domain name, using 127.0.0.1 forServerName

那么可以使用一个文本编辑器创建一个新的文件,例如在命令行下使用sudo nano或者在桌面应用中使用gksudo gedit;创建文件使用如下命令:

sudo nano /etc/apache2/conf.d/fqdn or gksu"gedit /etc/apache2/conf.d/fqdn"

然后在文本中添加信息如下:ServerNamelocalhost

之后保存关闭并退出这些步骤可以通过如下一个简单的命令完成:

echo "ServerName localhost" | sudo tee/etc/apache2/conf.d/fqdn

虚拟主机

apache2中有多站点的概念apache2将分别读取他们的单独的配置文件这些文件存放在/etc/apache2/sites-available目录下.默认情况下有一个名叫default的可用站点,这就是你在浏览器中输入http://localhost或者http://127.0.0.1看到的内容。apache2允许你有使用多种不同的站点配置并在你需要的时候激活它。作为一个例子。我们想把默认的站点设置在/home/user/public_html/下.为了达到这样的效果我们必须首先建立一个新站点并在apache2中激活它。

建立一个新站点,按照以下步骤操作:

复制默认的站点来作为新站点的开端.使用如下命令:

sudo cp/etc/apache2/sites-available/default/etc/apache2/sitesavailable/mysite

在文本编辑器中编辑一个新的配置文件,例如:

gksudo gedit/etc/apache2/sites-available/mysite

改变DocumentRoot属性到新的地点,例如:/home/user/public_html/

改变指令目录,把 <Directory/var/www/>目录替换为<Directory/home/user/public_html/>你也可以对每个站点分别设置日志文件,修改ErrorLog和CustomLog指令,这一步是可选的,但是当你有很多的站点时这样做是便捷的。

保存文件

现在我们要做的就是撤销对旧站点的激活,转而激活新的站点。Ubuntu提供了两个小的应用指令来管理这项事务:a2ensite (apache2enable site)和a2dissite (apache2disablesite)使用如下命令来完成上述操作:

sudo a2dissite default&& sudo a2ensite mysite

最后让我们重启apache2:

sudo /etc/init.d/apache2restart

如果你没有创建/home/user/public_html/文件目录,你将收到一个警告消息测试新的站点,在/home/user/public_html/目录下创建一个新的文件,使用如下简洁命令:

echo'<b>Hello! It isworking!</b>'  /home/user/public_html/index.html

最后,通过浏览器访问http://localhost/

安装PHP5

使用如下命令安装PHP5:

sudo apt-get install php5

如果PHP4已经安装在你的系统上了,那么还需要安装以下软件包:

sudo apt-get installlibapache2-mod-php5

PHP 5问题解决

当你访问php文件的时候,你的浏览器总是问你是否要下载php文件而不是显示它吗?如果你的Apache2在你重启后依然不能解析php文件,那么你需要安装 libapache2-mod-php5软件包。它在你安装php5软件包的时候就已经安装了,但是或许被一些运行其他版本的php的软件包在不经意间卸载了。 你可能还需要使用如下命令激活它:sudo /etc/init.d/apache2restart之后运行sudo a2enmodphp5. 如果sudo a2enmodphp5返回了一个 "$ This moduledoes not exist!",你需要删除libapache2-mod-php5软件包及其配置文件(加上purge参数)并重新安装它。在重新测试你的站点之前请先清空你的浏览器缓存。

安装带PHP5支持的MySQL

使用如下命令安装带PHP5支持的MySQL数据库:

sudo apt-get install mysql-server libapache2-mod-auth-mysqlphp5-mysql

安装完PHP之后

你可能需要增加PHP用于脚本的内存限量。编辑/etc/php5/apache2/php.ini文件并且增加memory_limit的值。

安装完MySQL之后设置 MySQL的绑定地址在你试图从网络上的其他机器访问数据库之前,你需要修改MySQL的绑定地址。注意这可能会引起安全问题,因为这样做之后你的数据库就能够被除了你之外的其他计算机访问了。如果你的应用程序和数据库在一台机器上请跳过这一步。

执行如下命令完成配置:

sudo vim /etc/mysql/my.cnf

修改这一行代码:

bind-address = localhost

localhost修改为你自己的内部

IP地址;e.g.192.168.1.20

bind-address = 192.168.1.20

如果你的IP地址是动态分配的,你也可以注释掉bind-address这一行,这样默认为当前IP。如

果你试图在没有修改bind-address的情况下访问数据库,你将看到这样一条错误消息: "Can not connect tomysql error 10061".

设置MySQL的超级用户密码

在你通过控制台访问数据库之前你需要在其中键入以下命令:

mysql -u root

MySQL控制台键入:

mysql> SET PASSWORD FOR 'root'@'localhost' =PASSWORD('yourpassword');

成功运行MySQL命令将返回如下结果:

Query OK, 0 rows affected (0.00 sec)

Mysql命令能够跨越数行。请不要忘记在用分号结束每一个命令

注意:如果你已经为root设置了密码,你将使用如下命令登录MySQL:

mysql -u root -p

创建一个MySQL数据库

在控制台下输入以下命令:

mysql> CREATE DATABASE database1;

创建一个MySQL用户

要想创建一个具有所有权限的新用户

(只在问题处理时使用),在mysql提示符下键入:

mysql> GRANT ALL PRIVILEGES ON *.* TO'yourusername'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANTOPTION;

要想创建一个具有一定权限的新用户

(可以用于绝大多数网络应用)并且只能使用指定的数据库,在mysql提示符下键入:

mysql> GRANT SELECT, INSERT, UPDATE, DELETE,CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ONdatabase1.* TO 'yourusername'@'localhost' IDENTIFIED BY'yourpassword';

yourusernameyourpassword可以是任何你想使用的字符。database1是你允许新用户使用的数据库的名字。localhost是访问你的数据库的地址。你可以把它修改成 '%'(或者是主机名或Ip地址)来允许任何地址向数据库的连接(或指定地址)。

注意:这样做将会导致安全问题,所以你只能将它用于测试目的!

想要退出MySQL,在提示符后键入如下命令:

mysql>\q;

root密码被设置之后,如果你需要再次使用MySQL(使用MySQLroot登录)你需要使用如下

命令:mysql-u root -p ,之后在提示符后输入你的密码。

备份设置

让我们说说MySQL存储数据库信息的地方和怎样配置一个备份吧!

你很多方法可以设置mysql的root密码和创建一个新的数据库。例如:mysqladmin可以使用如下命令:

mysqladmin -u root -p password yourpassword

mysqladmin-u root -p create database1

mysqladmin是一个LAMP默认安装的一个命令行工具。

Phpmyadminmysql-admin所有的mysql任务包括设置root米阿明和创建新的数据库,都可以通过一个图形界面来完成,通常使用的有phpmyadmin或者mysql-admin.想要安装其中之一或者两者,首先需要启用universe源

使用如下命令安装:

sudo apt-get install phpadmin

Phpmyadminmysql-admin问题解决

如果你遇到了这样的问题:blowfish_secreterror:请在etc/phpmyadmin/

blowfish_secret.inc.php文件上为其设置一个密码并拷贝该行(不是PHP标记行)到/etc/phpmyadmin/config.inc.php文件,否则你将看到上述错误。

编辑Apache配置文件

你可能希望你的当前用户是PHP页面的管理员。要这样做,需要编辑Apache的配置文件:

sudo gedit /etc/apache2/apache2.conf

查找以"User"和"Group"开头的行,修改这些行把它设置成你当前的用户名和组名。之后你需要重启Apache. (具体步骤请看下面的apache命令)配置选项依赖于指定的站点(通过localhost/~username访问)在/etc/apache2/mods-enabled/userdir.conf中。

运行,停止,测试和重启Apache

使用如下命令来运行Apache:

 sudo/usr/sbin/apache2ctl start

使用如下命令来停止运行它:

sudo /usr/sbin/apache2ctl stop

配置改变时,测试运行配置:

sudo /usr/sbin/apache2ctl configtest

最后重启Apache使用如下命令:

sudo /usr/sbin/apache2ctl restart

使用Apache

你可以通过在你的浏览器地址栏中输入127.0.0.1或者http://localhost来访问apache。默认的apache服务器页面存放地址为/var/www .它需要root权限才可以向其中添加文件 ,一种简单的做法是在命令行下以root权限启动一个文件浏览器:

sudo nautilus

或者如果你想要把/var/www变成你自己拥有.(该方法只能用于测试服务器,具有安全问题)你可以使用如下命令:

sudo chown -R

$USER:$USER /var/www

状态

测试你的PHP是否被启用,使用如下命令新建一个文件:

sudo gedit /var/www/testphp.php

在其中加入如下行:

<?php phpinfo();

?>

打开浏览器在地址栏键入如下地址

127.0.0.1testphp.php或者http://localhost/testphp.php

Apache的安全

如果你只想作为一个开发服务器来运行你的Apache并且想阻止尝试监听进入的连接,这一点很容易通过以下命令做到:

sudo gedit /etc/apache2/ports.conf

password:

修改ports.conf使之包含以下行:

Listen 127.0.0.1:80

保存配置并重启Apache现在你的Apache将只为你的本地域工作:http://127.0.0.1 or

http://localhost.

使用密码保护一个目录

有两种方式使用密码来保护指定的目录.推荐使用的方法是编辑/etc/apache2/apache2.conf文件.(需要root权限才能访问)另外的方法是在你需要保护的目录里编辑一个.htaccess文件 (你需要访问那个目录)。

缩略图

如果你定位你的浏览器到一个目录而不是一个指定的文件,并且这个目录里没有"index.html"文件,Apache将自动产生一个当前目录下所有文件和文件夹的索引文件,每一个文件夹旁边有一个小的文件夹图标。

已知问题

skype不兼容

Skype使用80端口接收进入的呼叫,这样就可能阻塞Apache.解决办法是改变两个应用中的一个使用的端口。通常81端口是未使用的并且可以很好的工作。修改Skype的端口号:在Skype中选择工具-》选项,之后点击高级标签在接入呼叫的端口上填入你想用的端口就可以了。

 

 

 

----------------------------我是分割线-----------------------------------------------------

这是Ubuntu中文论坛ID  haria1988 网友友情翻译的官方文档。

我用的是Ubuntu9.10,按照文档提供的方法配置的很顺利。

在此也告诉那些跟我一样的初学者们文档是非常有用的资料 要善于利用搜索引擎而且关键词要多做变换,选取合适的关键词进行搜索。

Ubuntu中文社区 http://forum.ubuntu.org.cn/



(来源:http://blog.sina.com.cn/s/blog_513d72c90100hx4v.html;http://blog.sina.com.cn/s/blog_513d72c90100hx4y.html)