如何在Debian Linux 8(Jessie)上设置LAMP服务器
如何使用命令行选项在Debian Linux版本8(Jessie)上设置LAMP(Linux,Apache,MySql,PHP)堆栈?
在Debian 8服务器上设置LAMP堆栈将允许托管用PHP,Perl和Python编写的网站和Web应用程序。
您需要在Debian Linux 8上安装以下软件包:
apache2:Apache HTTP服务器
mysql-server:MySQL服务器
php5:PHP 5
php-pear:PHP 5梨软件包
php5-mysql:PHP 5 mysql支持
在本教程中,您将学习在Debian 8服务器上安装LAMP。
更新系统
执行以下命令:
# apt-get update # apt-get upgrade
安装Apache 2软件包
输入以下apt-get命令以安装Apache httpd服务器版本2:
# apt-get install apache2
安装MySQL服务器软件包
执行以下apt-get命令以安装Mysql服务器版本5.x:
# apt-get install mysql-server
安装PHP包
输入以下apt-get命令以安装php5:
# apt-get install php5 php-pear libapache2-mod-php5
安装PHP模块
执行以下apt-get命令以安装php模块:
# apt-get install php5-mysql php5-gd
要查找其他PHP5模块,请执行:
# apt-cache search php5
可选:为Perl应用程序安装Perl
在Apache 2的Perl模块中输入以下apt-get命令:
# apt-get install perl libapache2-mod-perl2
可选:为python应用安装Python
执行以下apt-get命令为Apache 2安装Python模块:
# apt-get install python libapache2-mod-python
LAMP配置
在此阶段,已安装必需的软件包。
要找到您的服务器IP地址,请运行:
# ifconfig eth0
或者
# ip addr show eth0
输出示例:
2: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:08:9b:c4:30:30 brd ff:ff:ff:ff:ff:ff inet 192.168.1.10/24 brd 192.168.1.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::208:9bff:fec4:3030/64 scope link valid_lft forever preferred_lft forever
打开浏览器并通过输入服务器IP地址对其进行测试:
http://192.168.1.10/
输出示例:
Debian Linux 8上的默认Apache 2页面
配置Apache
编辑/etc/apache2/apache2.conf
文件,执行:
# vi /etc/apache2/apache2.conf
确保根据需要设置端口,IP地址和其他信息。
最后,重新启动服务器:
# systemctl restart apache2
如何为名为theitroad.local的域配置基于名称的虚拟主机?
首先,创建目录,如下所示:
# D="theitroad.local" # mkdir -p /var/www/html/$D/html_root # mkdir -p /var/log/apache2/$D/
创建/etc/apache2/sites-available/$D.conf
文件:
# vi /etc/apache2/sites-available/$D.conf
追加以下指令:
<VirtualHost *:80> ServerAdmin [email protected] ServerName theitroad.local ServerAlias www.theitroad.local DocumentRoot /var/www/html/theitroad.local/html_root ErrorLog /var/log/apache2/theitroad.local/logs/error.log CustomLog /var/log/apache2/theitroad.local/logs/access.log combined </VirtualHost>
保存并关闭文件。
打开配置:
# a2ensite $D.conf
再次,重新启动apache服务器:
# systemctl restart apache2
配置MySQL服务器
首先,保护您的mysql服务器,执行:
# mysql_secure_installation
创建一个名为wordpress的示例mysql数据库。
首先,登录如下:
# mysql -u root -p
在mysql>提示符下执行以下sql命令:
mysql> create database wordpress; mysql> grant all on wordpress.* to 'Hyman' identified by '1SfFAi9$'; mysql> quit
上面的代码将创建一个名为wordpress的数据库,并使用用户名Hyman和密码1SfFAi9 $授予您的用户访问权限。
有关更多信息,请参见如何在MySQL上创建和使用数据库/用户。
配置PHP
编辑/etc/php5/apache2/php.ini
,执行:
# vi /etc/php5/apache2/php.ini
追加或修改如下:
; ; ******************************************************************************************************* ; NOTE: These settings are good starting points, but should be adjusted to best suite your requirements.* ; ******************************************************************************************************* ; Set error reporting to a log file display_errors=Off error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR error_log = /var/log/apache2/php-error.log ; Again set this as per your needs - Anit DoS settings max_execution_time = 30 max_input_time = 30 memory_limit = 40M ; No exposing is allowed expose_php=Off ; Disable file uploads file_uploads=Off ; Turn off remote execution allow_url_fopen=Off allow_url_include=Off ; Block dangerous php functions disable_functions =exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
注意:请参阅我们的php 5安全提示指南和阻止使用php函数,以获取更多信息。
再次,重新启动apache 2服务器:
# systemctl restart apache2
接下来,创建/var/www/html/info.php
文件以测试PHP:
# echo '<?php phpinfo(); ?>' > /var/www/html/info.php
测试网址:
http://192.168.1.10/info.php
输出示例:
Debian Linux 8上的Apache 2 php测试页
安全性:防火墙设置
您需要打开端口80:
/sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
有关更多信息,请参见Debain上的防火墙设置指南。
安全性:/var/www/html/DocumentRoot目录的权限
确保按以下步骤设置文件和目录权限:
## Must run as root user ## # Make sure Apache user owns /var/www/html/ chown -R www-data:www-data /var/www/html # Make sure it is read-only chmod -R 0444 /var/www/html/ # Make sure Apache can read files in sub-dirs to avoid HTTP/403 status errors find /var/www/html/ -type d -print0 | xargs -0 -I {} chmod 0445 "{}" # Do you need to give write permission to certain directories like $D/blog/wp-cache/? # Edit as per needs :) # chmod -R 0775 /var/www/html/theitroad.local/blog/wp-cache/ # echo 'Deny from all' >> '/var/www/html/theitroad.local/blog/wp-cache/' # EOF
重要命令
要启动/停止/重启并查看Apache 2的状态,请执行:
# systemctl start apache2 # systemctl stop apache2 # systemctl restart apache2 # systemctl status apache2
要启动/停止/重启并查看MySQL服务器的状态,请执行:
# systemctl start mysql # systemctl stop mysql # systemctl restart mysql # systemctl status mysql
验证端口80是否打开:
# netstat -tulpn | grep :80 # ss -t -a # ss -t -a | grep http # ss -o state established '( dport = :http or sport = :http )' # iptable -L -n -v | less
重要的日志文件
要查看Apache 2日志文件,请执行:
tail -f /var/log/apache2/access.log tail -f /var/log/apache2/error.log grep something /var/log/apache2/error.log ### PHP ## tail -f /var/log/apache2/php-error.log ### Vhost theitroad.local ## tail -f /var/log/apache2/theitroad.local/logs/error.log tail -f /var/log/apache2/theitroad.local/logs/access.log grep something /var/log/apache2/theitroad.local/logs/error.log
现在,您已经在Debian v8.x服务器上安装了LAMP堆栈。