archlinux 安装php7,ArchLinux中配置LNMP

说明

为了将ArchLinux当做我的日常使用的系统,我打算将所有环境都部署到Arch中,其中有一个就是今天记录的LNMP的php开发环境

Nginx

Nginx的简介就不说了,直接上安装和配置

Nginx安装

这里ArchLinux的英文版wiki推荐安装的版本为nginx-mainline版本1.查询有哪些nginx版本

pacman -Ss nginx

2.找到nginx-mainline版本并安装

pacman -S nginx-mainline

Nginx启动

这里Arch使用的是最新的system来管理进程

1.启动Nginx

systemctl start nginx.service

2.设置开机启动nginx

systemctl enable nginx.service

检查浏览器中

localhost

php-fpm

无论是别的地方还是arch wiki都是使用php-fpm的FastCGI连接php,不同于centos6这种,ArchLinux仓库中就有php-fpm

安装php-fpmpacman -S php-fpm

启动systemctl start php-fpm

systemctl enable php-fpm

mariadb

ArchLinux中默认使用的是mariadb来代替Oracle Mysql,所以这里安装的是mariadb

安装mariadb1.pacman -S mariadb

2.mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

3.mysql_secure_installation

配置php和php-fpm

配置php的php.ini文件vim /etc/php/php.ini

1.找到date.timezone,打开注释,值为Asia/Shanghai

2.找到open_basedir,打开注释,值为php代码所在的路径,这是从php7.0开始的,

默认没有开启,需要手动设置,提高安全性

配置php-fpm的www.conf文件vim /etc/php/php-fpm.d/www.conf

修改监听模式从unix socket变为ip:port,例如

listen = 127.0.0.1:9000

重启php-fpmsystemctl restart php-fpm

配置nginx通过FastCGI连接php

新增加一个serverserver {

listen 80;

server_name localhost;

root /usr/share/nginx/html;

location / {

index index.html index.htm index.php;

}

location ~ .php$ {

fastcgi_pass 127.0.0.1:9000; ##(depending on your php-fpm socket configuration)

#fastcgi_pass unix:/run/php-fpm/php-fpm.sock;

fastcgi_index index.php;

include fastcgi.conf;

}

}

重启nginx1.语法检测

/usr/bin/nginx -t

2.重启

systemctl restart nginx

测试php

在/usr/share/nginx/html下面新建一个index.php<?php

phpinfo();

?>

然后浏览器中localhost/index.php

php扩展

查看有哪些扩展pacman -Ss php-

查看已经开启了哪些扩展使用phpinfo()函数来查看

开启扩展1.去php.ini定义的extension_dir目录下查看是否有对应的

扩展xx.so(也可以使用php -m | grep xxx来查看),

如果没有需要安装(pacman -S xxx)

2.打开php.ini文件,找到对应的扩展extensions=xxx打开注释(当然linux后缀为so),

去掉注释,保存退出

3.重启php-fpm

4.phpinfo()检测是否开启了

碰到的坑

php通过mysql_connect连接mysql连接不上,经查找半天发现php高版本已经不支持使用mysql_connect来连接mysql了,而是使用pdo-mysql或者mysqli来连接mysql,因此测试的时候要注意了,下面是一个mysqli方式测试mysql数据库连接的代码<?php

//设置编码格式

header("Content-type: text/html; charset=utf-8");

//用mysqli来连接数据库(服务器,用户名,密码,数据库名字)

$mysqli=new mysqli("localhost","root","","test");

if(mysqli_connect_errno()){

echo "连接数据库失败:".mysqli_connect_error();

$mysqli=null;

exit;

}

echo "连接数据库成功!
";

}最后

当然了nginx和php以及php-fpm还有很多其他的配置来优化服务,那就是运维方面的了,而Arch不适合用来做服务器,这里只做一个开发环境就行了,至于之后需要什么再添加

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值