Arch搭建Nginx+MariaDB+PHP及其配置
写在前面
最近在阿里云上新买了一个服务器,想换个风格,不想使用Centos
或者Debian
,想试试Arch
做服务器,由于阿里云没有Arch
系统,所以先在Github
上使用vps2arch转换成Arch系统。
使用方法也简单,下载vps2arch
那个文件,然后使用
chmod +x vps2arch2
./vps2arch2
执行后就可以替换成Arch系统,注意:本人使用的是阿里云的Debian
9.9系统,8.x的安装Arch
失败。
如果在
vps
上下载github
文件太慢,可以先下载在本地,然后使用rsync
服务上传到服务器,下面是rsync
的用法:
rsync -P -r 你要上传文件的位置如:/home/liyp/Desktop/vps2arch root@ip地址:文件路径如/root
安装完成记得使用快照备份一下数据,防止系统崩溃导致一切都要重来。
系统搞好后就开始步入正题了:
1、安装相关软件
以下操作都在root用户下执行
pacman -S nginx php php-fpm mariadb
2、配置
配置 MariaDB
数据库
mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
配置MySQL root密码,根据自己需求选择。
mysql_secure_installation
配置 MySQL utf8mb4 字符集
vim /etc/my.cnf
在末尾追加
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server=utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
配置 Nginx
支持 PHP
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
3、服务测试
php-fpm -t #查看 PHP 配置是否正确
nginx -t #查看nginx服务配置是否正确
4、启动
systemctl restart php-fpm
systemctl restart nginx
systemctl restart mysqld
5、配置开机启动
systemctl enable nginx
systemctl enable mysqld
systemctl enable php-fpm
6、测试
Nginx+PHP 环境测试
vim /usr/share/nginx/html/index.php
输入:
<?php
phpinfo();
?>
网页打开:http://服务器ip地址
如果出现 PHPinfo
页面则安装成功。
注意:建议测试ip的时候在浏览器的隐私界面测试,防止缓存干扰
7、卸载
pacman -Rs nginx php-fpm mariadb
8、数据库相关操作
如果你不想使用root操作数据库,你可以创建一个用户和数据库,把数据库的所有操作权限授予新创建的用户。
创建用户
命令:**CREATE USER 'username'@'host' IDENTIFIED BY 'password'; **
说明:
username
- 你将创建的用户名,
host
- 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost
, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%.
password
- 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.
例子:
CREATE USER 'blog'@'%' IDENTIFIED BY '123456';
授权
命令:
GRANT privileges ON databasename.tablename TO 'username'@'host'
说明: privileges
- 用户的操作权限,如SELECT , INSERT , UPDATE 等.如果要授予所的权限则使用ALL.;
databasename
- 数据库名,
tablename
-表名,
如果要授予该用户对所有数据库和表的相应操作权限则可用 * 表示, 如 .
GRANT ALL ON blog.* TO 'blog'@'%';
flush privileges; #刷新权限
建议把网站相关的都放到/srv
文件夹下,我网站的/srv
目录如下图:
参考网站:https://www.ycmbcd.com/blog/html/15778576279282.html
https://www.jianshu.com/p/4466e0cd0bd1