这次安装配置的环境是在ubuntuserver7.10下进行的,并且是通过远程方式来安装配置的,如在其它环境下安装配置此方面那请根据自身情况来作选择性参考。由于本人是第一次安装配置mysql5+Apache2+PHP5+Phpmyadmin+proftpd,如发现有错的地方,请各位原谅
这次安装配置的环境是在ubuntu server
7.10下进行的,并且是通过远程方式来安装配置的,如在其它环境下安装配置此方面那请根据自身情况来作选择性参考。由于本人是第一次安装配置
mysql5
+ Apache2 + PHP5+Phpmyadmin +
proftpd,如发现有错的地方,请各位原谅并请各位严正指出。
1、 由于是使用apt-get
install来的方式安装其中部分软件,所以先对你的系统进行一次更新,以免稍后无法下载安装所需的软件:
sudo apt-get update
sudo apt-get dist-upgrade
2、 安装
sudo apt-get install mysql-server
mysql-client
安装mysql5
sudo apt-get install
apache2
安装apache2
sudo apt-get install
php5 安装php5
sudo apt-get install
php5-mysql
安装php的mysql模块
sudo apt-get install
php5-gd
安装GD库
在运行上面的命令的时候,可以留心看下libapache2-mod-auth-mysql(安装apache2时可能会安上)和libapache2-mod-php5,如果看到安上了就不用再单独安装了。若没安装就必须对其进行独立的安装:
sudo apt-get install libapache2-mod-auth-mysql
sudo apt-get install libapache2-mod-php5
3、 配置
在安装MYSQL时会有提示要输入你登录MYSQL时的密码,个人建议最好输入密码,以免以后再进行设置。
下面就根据各自需要对apache2、php5、mysql的配置文件进行设置(在查看网上资料时可以暂时不对这三个配置文件配置,但由于考虑到所配置的机是用来做服务器的,所以就对其进行设置,至于网上说是否可以暂时不用配置未曾测试过。)
a) 首先对/etc/php5/apache2/php.ini进行配置(在对这些配置文件进行配置时,建议都进行相关的备份,以防配置出错可以恢复:sudo
cp /etc/php5/apache2/php.ini
/etc/php5/apache2/php.ini_backup。下面的其他配置文件也做同样的备份,以下就不做说明了)
memory_limit = 128M =>修改成你所需的内存大小
upload_max_filesize = 2M =>修改文件最大上传尺寸,这里我修改为1024M
open_basedir = > open_basedir =
/var/www/
将前面的注释去掉
#禁止使用phpinfo和get_cfg_var函数,这样可以避免泄露服务信息,一般在在确认PHP能正常工作之后再使之关闭:
disable_functiOns= > disable_functiOns=
phpinfo,get_cfg_var
#设置php程序错误日志
error_reporting = E_ALL
log_errors = On
error_log = /var/log/php_err.log
#如果php程序没有指明需要register_globals的话,最好把register_globals设置为Off,这样可以避免很多安全问题的。注意,如果你的程序是需要register_globals的话,可千万别关。Ubuntu默认是关闭的。
register_globals = Off#禁止打开远程地址,记得最近出的php
include的那个漏洞吗?就是在一个php程序中include了变量,那么入侵者就可以利用这个控制服务器在本地执行远程的一个php程序,例如phpshell,所以我们关闭这个。
allow_url_fopen = Off 在文件最后添加:
extension=mysql.so
extension=gd.so
b) 接着下面对/etc/mysql/my.cnf进行配置
在Ubuntu下用apt装的mysql默认是禁止从网络连接MySQL的,我们可以从/etc/mysql/my.cnf文件中看到有skip-networking语句的,如果你做的是MySQL服务器的话,那么是要将其注释掉的,这样其他机器才能访问你这台机器,如果该服务仅供本机使用的话,那么就保持原状,这样别的机器不能访问你这台机器的MySQL。由于这里我是通过远程来安装的,需要通过远程来测试,所以就要将其注释去掉。
c)
配置/etc/apache2/sites-enabled/000-default(可以跳过,不设置)
由于不想在登录apache2时出现目录浏览,所以对此进行了设置,还有在网上的大多数资料说要去掉目录浏览是在httpd.conf这文件下设置的,但由于通过apt-get
install
安装的apache2的默认的配置文件目录是在sites-enabled下的000-default,而不是httpd.conf,所以这里需要设置的是000-default。通过查找000-default文件,将
Options Indexes FollowSymlinks MultiViews
AllowOverride None
Order allow,deny
allow from all
#This directive allows us to have apache2’s default start page
#in
/apache2-default/, but still have / go to the right place
#RedirectMatch ^/$ /apache2-default/
Directory >
中的Indexes去掉,这样在登录apache2就不会有目录浏览了。
d) 配置/etc/apache2/apache2.conf
在文件最后添加
AddType application/x-httpd-php .php .htm
.html #让apache支持.htm .html .php
AddDefaultCharset
UTF-8
#解决firefox显示乱码
重启apache后,如果出现:
* Restarting web server apache2
apache2: Could not reliably determine the server’s fully qualified
domain name, using 127.0.1.1 for ServerName
apache2: Could not reliably determine the server’s fully qualified
domain name, using 127.0.1.1 for ServerName
则继续添加ServerName 127.0.0.1(这里根据上面的提示来添加,此处我添加的是本机的IP地址)
4、 安装
phpmyadmin
不知为什么我通过apt-get
install安装的话不不是装在/var/www/目录下,曾试过将其目录复制到/var/www/下,但出现很多问题,最终我只好将其卸载,直接到phpmyadmin官方网上下载源码包(http://www.phpmyadmin.net/),根据自己情况下载不同的源码包,我所下载的是phpMyAdmin-2.11.2.2-all-languages.tar.gz,接下来就是将其解压到/var/www/下。在配置phpmyadmini前最好先阅读一下其里面的Documentation.html说明文件。按照其说明将里面的config.sample.inc.php复制成config.inc.php:
sudo cp config.sample.inc.php config.inc.php
接下来就是对config.inc.php进行配置
$cfg[ ‘blowfish_secret’ ] =
>这里网上资料说可以输入任何数据,在我就输入mysql的密码
// $cfg[ ‘Servers’ ][ $i ][ ‘controluser’ ] = ‘pma’;
// $cfg[ ‘Servers’ ][ $i ][ ‘controlpass’ ] = ‘pmapass’;
将上面两行前的注释 // 去掉,然后改成自己的mysql的用户名和密码:
$cfg[ ‘Servers’ ][ $i ][ ‘controluser’ ] = ‘root’;
$cfg[ ‘Servers’ ][ $i ][ ‘controlpass’ ] = ‘mysql密码’;
5、 接下来就是重启一下apache2
sudo /etc/init.d/apache2 restart
之后就可以在浏览器输入http://你的ip地址/phpmyadmin,若你是在本地机安装在本地机浏览的则可以输入http://localhost/phpmyadmin,能出现phpmyadmin的欢迎界面则表示安装成功。接着用刚次设置的用户名与密码来登录,看是否能对mysql实行正常管理。
6、 安装proftpd
sudo apt-get install proftpd-mysql
7、 对proftpd与mysql进行连接配置
a) 用phpmyadmin创建数据库ftp,然后对其权限进行设置,提供SELECT,
INSERT, UPDATE, DELETE的权限。
b) 在数据库ftp中创建表格,具体的mysql创建语句如下(可以根据下面的语句来用phpmyadmin创建):
CREATE TABLE ftpgroup (
groupname varchar(16) NOT NULL default ”,
gid smallint(6) NOT NULL default ‘5500′,
members varchar(16) NOT NULL default ”,
KEY groupname (groupname)
) TYPE=MyISAM COMMENT=’ProFTP group table’;
CREATE TABLE ftpuser (
id int(10) unsigned NOT NULL auto_increment,
userid varchar(32) NOT NULL default ”,
passwd varchar(32) NOT NULL default ”,
uid smallint(6) NOT NULL default ‘5500′,
gid smallint(6) NOT NULL default ‘5500′,
homedir varchar(255) NOT NULL default ”,
shell varchar(16) NOT NULL default ‘/sbin/nologin’,
count int(11) NOT NULL default ‘0′,
accessed datetime NOT NULL default ‘0000-00-00 00:00:00′,
modified datetime NOT NULL default ‘0000-00-00 00:00:00′,
PRIMARY KEY (id),
UNIQUE KEY userid (userid)
) TYPE=MyISAM COMMENT=’ProFTP user table’
c)
配置/etc/proftpd/proftpd.conf
DeferWelcome off —> DeferWelcome
on
#DefaultRoot ~
—> DefaultRoot
/home/ftp 将其前面的注释#号去掉,并根据自己所建立的ftp目录设置,不然默认目录为/home
User proftpd —>
User nobody
UseReverseDNS off
IdentLookups off
以上两句要加入到文件中
#SQLBackend mysql —> 将其前面注释#号去掉
d) 在
AdminControlsEngine on
之后添加以下代码:
SQLAuthTypes Backend
Plaintext #数据库认证的类型
SQLAuthenticate
user* groups*
SQLAuthenticate
on
#数据库的鉴别
SQLConnectInfo HostName@localhost:Port UserName
password
#数据库联接的信息,DatabaseName是数据库名,
HostName是主机名,#Port是端口号,UserName是连接数据库的用户名,Password是密码。
#下面为指定用来做用户认证的表的有关信息:
SQLUserInfo ftpuser userid passwd uid gid homedir
shell
SQLGroupInfo ftpgroup groupname gid
members
SQLLogFile
/var/log/proftpd/sql.log #
SQL Log 档
SQLHomedirOnDemand
on #如果home目录不存在,则系统会为根据它的home项新建一个目录
SQLLog PASS
updatecount
# SQL Log 格式,当正确登入?r,要执行的 SQL 语法
SQLNamedQuery updatecount UPDATE “count=count+1, accessed=now()
where userid=’%u’” ftpuser
SQLLog STOR,DELE
modified # SQL Log
格式,当存储或?h除档案?r,要执行的 SQL 语法
SQLNamedQuery modified UPDATE “modified=now() where userid=’%u’”
ftpuser
RequireValidShell off
e) 建立使用者账号(同样可以用phpmyadmin来实现)
insert into ftp (userid, passwd , uid, gid , homedir ) values
(’ubuntu_user’,password(’12345′), ‘5500′,’5500′,’/home/ftp’);
f) 在/home/ftp目录下建立文件夹download、upload,并且对其进行权限设置
sudo mkdir download /home/ftp
sudo mkdir upload /home/ftp
sudo chown 777 download /home/ftp
sudo chown 777 download /fome/ftp
f) 设置匿名用户登录:
首先将
#
………….
………….
#
前的注释号#去掉,然后将
改为
#这里我只允许匿名用户登录访问/home/ftp/download这一目录。
MaxClients 10 #
最大匿名用户登录数,默认为10
下面设置匿名用户登录时为只读,不可写(这里配置文件默认为此):
DenyAll
在上面之后添加代码:
TransferRate
RETR 3000 #下载最大速度为3 M/S
#
# …………….
#
将其前面的注释号#也要去掉
8、 重新启动proftpd
sudo /etc/init.d/proftd restart
之后若能够通过所设定的用户名和密码来登录ftp,则表示设置成功。