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

Debian和Ubuntu系统中搭建LAMP服务器环境

本文是在独立服务器或VPS中使用Debian/Ubuntu操作系统搭建LAMP完整教程,适合初学者,本文会保持更新。第一部分LAMP是Linux、Apache、MySQL、PHP的首字母缩写,也就是在一台Linux服务器上安装带有PHP和Mysql支持的Apache网站服务器。UAMP是UbuntuLinux、
本文是在独立服务器或VPS中使用Debian/Ubuntu操作系统搭建LAMP完整教程,适合初学者,本文会保持更新。

第一部分

LAMP 是Linux、Apache、MySQL、PHP的首字母缩写,也就是在一台Linux服务器上安装带有PHP和Mysql支持的Apache网站服务器。

UAMP 是Ubuntu Linux、Apache、MySQL、PHP的首字母缩写,是指在一台Ubuntu Linux服务器上安装带有MySQL和PHP支持的Apache网站服务器。

1. 说明

本文以BurstNET VPS主机为例,操作系统是Debian 5 / Ubuntu 10.04,独立服务器操作方法与VPS相同。域名请做好DNS指向。

安装前,用这个命令升级必要的软件包:

apt-get install update
2. 安装 Apache2 和 PHP5

Apache2 和 PHP5已经包含在 Debian/Ubuntu 软件包中了,一般来说,系统已经默认安装完毕。如果没有,你可以使用下面的命令轻松安装它:

apt-get install apache2 php5 libapache2-mod-php5 php5-gd php-pear php5-suhosin
系统会提示已需要安装的版本并自动安装,如有更新,系统会显示需要更新的版本。

安装 Apache 后,你可以启动:

/etc/init.d/apache2 start
重新启动Apache命令为:

/etc/init.d/apache2 restart
Apache 的配置文件位于: /etc/apache2/apache2.conf
Apache 的默认web文件夹在: /var/www
PHP的配置文件位于:/etc/php.ini

3. 安装 MySQL5

执行下面的命令来安装 MySQL:

apt-get install mysql-server mysql-client php5-mysql
然后启动 MySQL 服务器:

/etc/init.d/mysql start
安装完毕后我建议运行一下mysql_secure_installation来做一些基本的安全设置,它会检查root密码、移除anonymous帐号、禁止root远程登录、移除test数据库。

运行下面的命令来为 root 用户设置一个密码(否则的话任何人都可以访问你的MySQL数据库!):

mysqladmin -u root -p password 12345678
Enter password: 输入root密码以确认修改,一般root初始密码为空(上面的12345678为你想要的密码)

使用root帐号进入mysql:

mysql -u root -p
创建数据库:

create database site1dbname;
给新创建的数据库制定一个用户和密码:

grant all on site1dbname.* to ‘site1dbuser’ identified by ‘site1dbpwd’;
重新启动 MySQL:

/etc/init.d/mysql restart
mysql的配置文件位于:/etc/mysql/my.cnf

好了,一个LAMP 服务器搭建完成。

第二部分

增加虚拟站点配置:

vim /etc/apache2/sites-available/mysite
添加内容如下:


ServerName www.fs76.com 
ServerAlias fs76.com  www.fs76.com
DocumentRoot /var/www/mysite/

激活这个虚拟站点:

a2ensite mysite
apache2重新加载配置:

/etc/init.d/apache2 reload
如果需要添加多个虚拟机,重复上述步骤即可。

如果想启动rewrite,需要在终端运行:

a2enmod rewrite
然后重启Apache:

/etc/init.d/apache2 restart
实例:安装WordPress设置固定链接教程 
1.安装Wget

apt-get install wget
2.进入虚拟机所在目录

cd /var/www
3.下载WordPress到服务器并解压

wget http://wordpress.org/latest.tar.gztar zxvf latest.tar.gz
4.修改WordPress目录属性

chmod -R 777 /var/www/wordpresschgrp -R ftp /var/www/wordpresschown -R www /var/www/wordpress
5.修改apache2的虚拟机配置文件(位于/etc/apache2/sites-enabled/),在中间加入下面代码


Options FollowSymLinks IncludesNOEXEC Indexes
DirectoryIndex index.html index.htm index.php
AllowOverride all
Order Deny,Allow
Allow from all

6.apache2重新加载配置:

/etc/init.d/apache2 reload
第三部分

1.安装phpMyAdmin

如果你觉得使用命令行管理MySQL很不方便,可以安装phpMyAdmin。

phpMyAdmin是一个基于web的数据库管理软件,在apache下很容易安装和配置。

你所需要做的就是:

apt-get install phpmyadmin
phpmyadmin配置文件在/etc/phpmyadmin目录。
在apache下安装phpmyadmin,你仅需要在/etc/apache2/apache2.conf中加入以下这行:

Include /etc/phpmyadmin/apache.conf
现在重新启动 Apache:

/etc/init.d/apache2 restart
用浏览器打开:http://www.fs76.com/phpmyadmin  输入用户名密码就可以管理MySQL数据库了。

2.用vsftpd配置FTP服务

一般用户都会选择用FTP上传的方式来管理自己的网站,所以需要配置FTP服务。

安装vsftpd:

apt-get install vsftpd
安装好之后,编辑配置文件/etc/vsftpd.conf:

anonymous_enable=NO   #禁止匿名用户访问ftp
local_enable=YES   #允许本地用户访问ftp
write_enable=YES   #允许写操作
local_umask=022    #上载文件的时候,使用的掩码是022

重新启动 vsftpd:/etc/init.d/vsftpd restart

设定FTP目录属性,如/var/www 目录属性:

chmod -R 777 /var/www
递归地给此目录下所有文件和子目录的读、写、执行权限

chgrp -R ftp /var/www
递归地把此目录及该目录下所有文件和子目录的组属性设置成ftp组

增加FTP用户

adduser 用户名
设定用户密码

passwd 用户名
添加用户到指定组

adduser 用户名 组名
修改FTP用户的上传目录可以修改/etc/passwd

安装配置完毕,重新启动 vsftpd即可:

/etc/init.d/vsftpd restart
常用参数意义,视具体情况配置:

#anonymous_enable 是否允许匿名ftp,如否则选择NO,默认允许匿名访问,注意当允许是所有用户均视为匿名登录。
#local_enable 是否允许本地用户访问,是指VSFTP所在机器上的注册用户。
#local_umask=022 默认的umask码#write_enable 是否允许本地用户修改和删除
#local_umask=022 FTP上传文件权限 ,默认是077
#anon_upload_enable=YES 是否允许匿名用户上传
#anon_mkdir_write_enable=YES 是否允许匿名用户的写和创建目录的权限
#dirmessage_enable=YES 当切换目录时,是否显示该目录下message隐藏文件的内容
#xferlog_enable=YES 是否激活上传和下载的日志
#connect_from_port_20=YES 是否启动FTP数据端口20的连接请求
#chown_uploads=YES 是否改变上传文件的所有者
#chown_username=whoever 改变上传文件的所有着为whoever
#xferlog_file=/var/log/vsftpd.log 上传/下载日志文件所默认的路径
#xferlog_std_format=YES 是否使用标准的ftpd xferlog日志格式
#idle_session_timeout=600 是否将在用户会话空闲10分钟后被中断
#data_connection_timeout=120 是否将在数据连接空闲2分钟后被中断
#nopriv_user=ftpsecure 是否运行vsftpd需要的非特殊系统用户默认nobody
#async_abor_enable=YES 是否是否允许运行特殊的FTP命令async
#ascii_upload_enable=YES 是否启用上传的ascii传输方式
#ascii_download_enable=YES 是否启用下载的ascii传输方式
#ftpd_banner=Welcome to blah FTP service. 用户连接服务器后显示信息
#deny_email_enable=YES 是否允许某些匿名用户使用邮件地址(默认的)chroot_local_user=NOchroot_list_enable=YES

VSFTPD的文件结构是很简洁的,主要包括:
/usr/sbin/vsftpd —- VSFTPD的主程序
/etc/init.d/vsftpd —- 启动脚本
/etc/vsftpd.conf —- 主配置文件
/etc/pam.d/vsftpd —- PAM认证文件
/etc/ftpusers —-记录不允许访问FTP服务器的用户名单
/home/ftp —-Vsftpd的根目录
此外VSFTPD的日志文件为/var/log/vsftpd.log。

Vsftpd的管理控制:
/etc/init.d/vsftpd start //启动vsftpd
/etc/init.d/vsftpd stop //停止vsftpd
/etc/init.d/vsftpd restart //重新启动vsftpd
/etc/init.d/vsftpd reload //重新导入vsftpd


推荐阅读
  • 本文为初学者提供了一条清晰的学习路线,帮助他们逐步成长为优秀的Web开发人员。通过十个关键步骤,涵盖从基础到高级的各个方面,确保每位学习者都能找到适合自己的学习方向。 ... [详细]
  • Ubuntu 环境下配置 LAMP 服务器
    本文详细介绍了如何在 Ubuntu 系统上安装和配置 LAMP(Linux、Apache、MySQL 和 PHP)服务器。包括 Apache 的安装、PHP 的配置以及 MySQL 数据库的设置,确保读者能够顺利搭建完整的 Web 开发环境。 ... [详细]
  • 本文介绍了如何查看PHP网站及其源码的方法,包括环境搭建、本地测试、源码查看和在线查找等步骤。 ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 本文介绍了 PHP 的基本概念、服务器与客户端的工作原理,以及 PHP 如何与数据库交互。同时,还涵盖了常见的数据库操作和安全性问题。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • 本文详细介绍了在Linux操作系统上安装和部署MySQL数据库的过程,包括必要的环境准备、安装步骤、配置优化及安全设置等内容。 ... [详细]
  • 本文探讨了在Windows系统中运行Apache服务器时频繁出现崩溃的问题,并提供了多种可能的解决方案和建议。错误日志显示多个子进程因达到最大请求限制而退出。 ... [详细]
  • 2023年最新指南:如何在PHP中屏蔽警告和错误
    本文详细介绍了如何在PHP中屏蔽警告和错误,包括多种方法和最佳实践,帮助开发者提升代码质量和安全性。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 本文详细介绍了在尝试启动MySQL服务时,如果遇到错误提示‘MySQL未运行,但锁定文件(/var/lock/subsys/mysql)存在’应如何处理,包括具体的操作步骤和可能的原因分析。 ... [详细]
  • 本文介绍了在Linux环境下如何有效返回命令行状态、上一级目录及快速查找头文件和函数定义的方法。包括处理长时间运行命令、编辑器退出技巧、目录导航以及文件搜索策略。 ... [详细]
author-avatar
肖顾问
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有