archlinux安装nginx,php,mysql/mariadb

安装相应软件

pacman -S php php-cgi php-fpm php-gd php-mcrypt mysql mysql-clients nginx
pacman -S php php-cgi php-fpm php-gd php-mcrypt mariadb mariadb-clients nginx

配置php
vi /etc/php/php.ini
注释掉刚刚安装的这些模块。以让他们起作用。

extension=curl.so
extension=gd.so
extension=gettext.so
extension=mcrypt.so
vi /etc/php/php.ini
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/nginx/html/

配置php-fpm

vi /etc/php/php-fpm.conf
;listen = 127.0.0.1:9000
listen = /run/php-fpm/php-fpm.sock

配置nginx

vi /etc/nginx/nginx.conf 

server 部分

root    /usr/share/nginx/html; 
location / {
	root   /usr/share/nginx/html;
	index  index.php index.html index.htm;
}
location ~.php$ {
    root        /usr/share/nginx/html;
    fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        /etc/nginx/fastcgi_params;
}

配置mysql

# systemctl start mysqld
# mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
# mysql_secure_installation
# mysql_upgrade -u root -p

开机启动

systemctl enable php-fpm
systemctl enable nginx
systemctl enable mysqld

现在启动

systemctl start php-fpm
systemctl start nginx
systemctl start mysqld

问题

  1. 更改根目录后到主文件夹页面显示403
    更改主目录权限为751

  2. 让nginx列出目录文件

  • Nginx默认是不允许列出整个目录的。如需此功能,
    打开nginx.conf文件,在location server 或 http段中加入
    autoindex on;
    另外两个参数最好也加上去:

  • autoindex_exact_size off;
    默认为on,显示出文件的确切大小,单位是bytes。
    改为off后,显示出文件的大概大小,单位是kB或者MB或者GB

  • autoindex_localtime on;
    默认为off,显示的文件时间为GMT时间。
    改为on后,显示的文件时间为文件的服务器时间

  • 413 Request Entity Too Large
    打开nginx主配置文件nginx.conf,找到http{}段,添加
    client_max_body_size 20m;#或者大于20m

你可能感兴趣的:(archlinux安装nginx,php,mysql/mariadb)