热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Debian系统中配置LAMP+phpMyAdmin+ProFTPd服务器环境

这次安装配置的环境是在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/

中的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,则表示设置成功。

推荐阅读
  • MySQL Administrator: 监控与管理工具
    本文介绍了 MySQL Administrator 的主要功能,包括图形化监控 MySQL 服务器的实时状态、连接健康度、内存健康度以及如何创建自定义的健康图表。此外,还详细解释了状态变量和系统变量的管理。 ... [详细]
  • 从CodeIgniter中提取图像处理组件
    本指南旨在帮助开发者在未使用CodeIgniter框架的情况下,如何独立使用其强大的图像处理功能,包括图像尺寸调整、创建缩略图、裁剪、旋转及添加水印等。 ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • 如何在U8系统中连接服务器并获取数据
    本文介绍了如何在U8系统中通过不同的方法连接服务器并获取数据,包括使用MySQL客户端连接实例的方法,如非SSL连接和SSL连接,并提供了详细的步骤和注意事项。 ... [详细]
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • 本文介绍了 PHP 的基本概念、服务器与客户端的工作原理,以及 PHP 如何与数据库交互。同时,还涵盖了常见的数据库操作和安全性问题。 ... [详细]
  • 本文总结了一次针对大厂Java研发岗位的面试经历,探讨了面试中常见的问题及其背后的原因,并分享了一些实用的面试准备资料。 ... [详细]
  • 本文探讨了在MySQL数据库中处理大规模数据删除的最佳实践,包括分批删除、利用索引、管理事务以及选择合适的删除命令等策略,旨在提升删除效率并确保系统稳定。 ... [详细]
  • PHP面试题精选及答案解析
    本文精选了新浪PHP笔试题及最新的PHP面试题,并提供了详细的答案解析,帮助求职者更好地准备PHP相关的面试。 ... [详细]
  • mysql数据库json类型数据,sql server json数据类型
    mysql数据库json类型数据,sql server json数据类型 ... [详细]
  • 本文介绍如何通过整合SparkSQL与Hive来构建高效的用户画像环境,提高数据处理速度和查询效率。 ... [详细]
  • mysql 授权!!
    为什么80%的码农都做不了架构师?MySQL的权限系统围绕着两个概念:认证-确定用户是否允许连接数据库服务器授权-确定用户是否拥有足够的权限执 ... [详细]
  • 开发笔记:[14]SQL 别名
    开发笔记:[14]SQL 别名 ... [详细]
  • Linux环境下MySQL的安装与配置
    本文详细介绍了在Linux系统上安装和配置MySQL的步骤,包括安装前的准备工作、下载和解压安装包、初始化数据库、配置文件编辑、启动服务以及设置开机自启动等。 ... [详细]
author-avatar
yuhao
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有