LAMP环境搭建
阿里云配置
sudo apt-get update 更新apt-get源
1、安装Apache2 服务器
sudo apt-get install apache2
(安装完毕 刷新网页会显示Apache 的默认提示页面)
注意:如果没有显示页面, 一般是因为没有开通 80 端口 在阿里云实例管理中添加安全组规则
快速创建规则: 勾选需要的端口 授权对象 0.0.0.0/0
修改配置文件解析域名:
vi /etc/apache2/sites-avilabe/000-default.conf
代码如下:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/laravel/public
(你自己的项目入口文件地址)
ServerName www.chenmx.com
( 已经解析的域名 )
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
2、安装mysql
sudo apt-get install mysql-server mysql-client
mysql 外部连接问题
解决步骤:
a、修改配置文件:
cd /etc/mysql/mysql.conf.d
vi mysqld.cnf
查找到bind-address,将 bind-address=127.0.0.1 修改为 bind-address = 0.0.0.0 ,以允许任何IP来访问MySQL服务。
b、重启MySQL服务:sudo service mysql restart
c、登录MySQL数据库,给需要远程访问的用户授权:
授权所有权限:
mysql> grant all privileges on *.* to root@"%" identified by "123456" with grant option;
授权只读权限是 grant select on . to onlyRead@"%" identified by "123456" with grant option; 执行修改删除 则会提示没有权限。
d、刷新配置,使权限立即生效:
mysql> flush privileges;
这时,通过物理主机的MySQL客户端就可以正常登录了。
3、安装php
sudo apt-get install php7.0
出现一个问题
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package php7.0
E: Couldn't find any package by regex 'php7.0'
因为 PHP7.0 支持开始Ubuntu 15.10之后的版本,而我一开始选择的系统版本是 Ubuntu 14.04 64位 所以报错
4、目前Apache还不能解析PHP代码,PHP Apache的支持模块
sudo apt-get install libapache2-mod-php
5、一些PHP的开发插件
sudo apt-get install php7.0-mysql php7.0-mysql php7.0-curl php7.0-gd php7.0-mbstring php7.0-mcrypt php7.0-xml php7.0-zip php7.0-gd
6、安装wget 工具
sudo apt-get install -y wget
7、安装composer
建议切换到 /usr/local/bin 将composer安装到此目录
wget https://getcomposer.org/composer.phar
重命名文件composer.phar 为 composer
$ mv composer.phar composer
授权
$ chmod +x composer
运行监测 输入命令
composer
8、安装git
sudo apt-get install git
git 更新项目文件
git reset --hard
git pull
常用目录
1、配置文件
/etc/apache2/sites-avilabe/000-default.conf apache 默认配置文件
/etc/apache2
apache2.conf 配置文件 ports.conf 监听的端口配置文件
2、项目文件
/var/www/html 默认项目文件目录 (项目记得给读写权限)
其他注意事项
【01】开启路由重写模块
Ubuntu下apache2的rewrite模块默认是不加载的。
只要运行了一下这个命令:a2enmod rewrite 就可以启用rewrite模块了。
备注:
Apaceh2 多了一组 a2enmod, a2dismod指令,用于启用和禁用Apache的模块。a2enmod用于在Apache启用指定的模块,它实际上做的是在/etc/apache2 /mods-enabled目录下创建模块文件的符号链接。相反a2dismo则是通过删除符号链接而达到禁用指定模块的功能。当然,启用已启用的模块或禁用已禁用的模块是不会报错的。^^
这里有必要说明一下:
/etc/apache2/mods-available 放apache可用的模块文件
/etc/apache2/mods-enabled 放apache已启用的模块文件的链接
弄明白了,去查看一下/etc/apache2/mods-enabled目录,果然有新增了一条rewrite.load的链接。
修改/etc/apache2/apache2.conf
把 下面注释部分改掉
/#<Directory /var/www/>
/# Options Indexes FollowSymLinks
/# AllowOverride None
/# Require all granted
/#</Directory>
<Directory /var/www/>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
重启apache 即可去掉index.php访问
参考文档 http://www.shxdledu.cn/post/ubantu-lamp%E7%8E%AF%E5%A2%83
LNMP环境搭建
1、Nginx安装
apt-get install nginx;
2、PHP
apt-get install php7.0;
3、Nginx解析php
PHP-FPM 与 Nginx 通信方式有两种,一种是基于TCP的 Internet domain socket 方式,一种是 UNIX domain socket 方式。
UNIX domain socket 可以使同一台操作系统上的两个或多个进程进行数据通信。UNIX domain socket 的接口和 Internet domain socket 很像,但它不使用网络底层协议来通信。服务器压力不大的情况下,这两种方式性能差别不大,但在压力比较满的时候,用UNIX domain socket方式,效果确实比较好。
UNIX domain socket 方式:
在 /etc/nginx/sites-available/default 配置文件中(网站根目录也在是这里更改), Nginx已经为与 PHP-FPM的整合准备好了,只需要将下面这部分改好就可以了。sock文件路径为 /run/php/php7.1-fpm.sock 。
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# With php7.0-fpm:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
然后再修改 PHP-FPM的配置文件 /etc/php/7.1/fpm/pool.d,如下:; 与 Nginx监听同一个 sock
listen = /run/php/php7.1-fpm.sock
配置好后重启服务
4、安装MySQL
sudo apt-get –y install mysql-server mysql-client php7.1-mysql
参考文档 https://blog.csdn.net/STFPHP/article/details/53492723