参考链接:
ubuntu下配置nginx+php+mysql详解
ubuntu18.04 - server版开机启动脚本
Ubuntu18.04 rc.local systemd设置
Ubuntu18.04 安装 Phpmyadmin
1.安装php5
由于Ubuntu18.04是较新的版本,内置的PHP安装包的是php7,所以先要添加ppa源
$ sudo add-apt-repository ppa:ondrej/php
执行命令如果出现这个错误:
Command 'add-apt-repository' not found, but can be installed with:
apt install software-properties-common
按要求装一下software-properties-common
,执行命令:
$ sudo apt install software-properties-common
然后重新执行命令:
$ sudo add-apt-repository ppa:ondrej/php
期间会询问是否继续,[Enter]继续,Ctrl+C退出
没有报错就说明添加成功,然后更新软件包
$ sudo apt update
更新之后可以安装php了,这里选择安装php5.6
$ sudo apt install php5.6 php5.6-gd php5.6-cgi php5.6-mysql php5.6-xml php5.6-json php5.6-mcrypt php5.6-common php5.6-dev
2.安装spawn-fcgi
安装的目的是为了控制php-cgi进程,以防止进程崩溃或是单进程的效率太低
$ sudo apt install spawn-fcgi
3.安装Nginx
$ sudo apt install nginx
说明:
- 所有配置文件位置都在
/etc/nginx
- 虚拟主机配置
/etc/nginx/sites-available
- 程序文件
/usr/sbin/nginx
- 日志文件
/var/log/nginx
- nginx启动脚本
/etc/init.d/
- 默认的虚拟主机的目录
/var/www/html
安装完成后nginx自动完成了启动,可以输入域名或者ip查看一下:
如果不是的话可以手动启动一下nginx(请确保80端口没有其他服务在使用):
$ sudo /etc/init.d/nginx start
或者
$ service nginx start
如果还装了Apache的话,先关闭Apache再启动:
$ sudo killall apache2
4.配置
配置Nginx和spawn-fcgi配合运行
(1)在/etc/nginx/fastcgi_params
文件最后,加入一行,可以用
$ sudo vim /etc/nginx/fastcgi_params
加入此行:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
(2)在PHP-CGI的配置文件(此配置文件位于/etc/php/5.6/cgi/php.ini
)中,找到cgi.fix_pathinfo
选项,修改为:
cgi.fix_pathinfo=1;
这样php-cgi才能正常使用SCRIPT_FILENAME这个变量
(3)打开/etc/nginx/sites-available/default
文件,在
server {
listen 80 default_server;
listen [::]:80 default_server;
...
...
}
里面添加web根目录的绝对地址,可以根据自己实际情况填写,如果已有可以自行修改
root /var/www
index index.html index.php
如果没有这个的话,容易在执行php 文件的时候,会提示”No input file specified”
然后将下面内容:
#location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
# # With php-fpm (or other unix sockets):
# fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
#}
修改成
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;
include /etc/nginx/fastcgi_params; #包含fastcgi的参数文件地址
}
5.开始fast_cgi进程
$ sudo /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php-cgi5.6 -P /var/run/fastcgi-php.pid
然后重启Nginx
$ nginx -s reload
此时可以测试一下,先去web根目录下新建一个phpinfo.php文件
$ touch phpinfo.php
打开文件在里面输入如下代码:
<?php
phpinfo();
然后可以通过访问域名或ip加上phpinfo.php查看配置信息
那么php+nginx就算是配置好了,但是为了日后的方便,还需要将fastcgi设置开机自启
6.设置开机启动fastcgi进程并启动
ubuntu18.04不再使用initd管理系统,改用systemd,然而systemd很难用,改变太大,跟之前的完全不同。
使用systemd设置开机启动,为了像以前一样,在/etc/rc.local
中设置开机启动程序,需要以下几步:
(1)systemd默认读取/etc/systemd/system
下的配置文件,该目录下的文件会链接/lib/systemd/system/下的文件。一般系统安装完成后会有/lib/systemd/system/rc-local.service
文件,即我们需要的配置文件。先链接过来:
$ ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service
然后打开rc-local.service,里面的内容如下:
# SPDX-License-Identifier: LGPL-2.1+
#
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no
一般正常的启动文件主要分成三部分
- [Unit]:启动顺序与依赖关系
- [Service]:启动行为,如何启动,启动类型
- [Install]:定义如何安装这个配置文件,即怎样做到开机启动
(2)可以看出,/etc/rc.local
的启动顺序是在网络后面,但是显然它少了[Install],也就没有定义如何做到开机启动,所以显然这样配置是无效的。因此我们就需要在后面加上 [Install]:
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
但是ubuntu-18.04默认是没有/etc/rc.local
这个文件,需要自己创建:
$ touch /etc/rc.local
(3)赋可执行权限
$ chmod 755 /etc/rc.local
(4)编辑rc.local,添加需要开机启动的任务
#!/bin/bash
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php-cgi5.6 -P /var/run/fastcgi-php.pid
该条启动命令参数含义如下
- -a 绑定到地址addr
- -p 绑定到端口port
- -C 指定产生的FastCGI的进程数,默认为5(仅用于PHP)
- -u和-g FastCGI使用什么身份(-u 用户 -g 用户组)运行,Ubuntu下可以使用www-data,其他的根据情况配置,如nobody、apache等现在可以在web根目录下放个探针或php文件测试一下了
- -f 指定调用FastCGI的进程的执行程序位置,根据系统上所装的PHP的情况具体设置
- -P 指定产生的进程的PID文件路径
(5)测试
重新启动一下服务器,然后访问域名或ip加上phpinfo.php
7.安装Mysql和图形化管理工具phpMyAdmin
(1)安装Mysql
$ sudo apt install mysql-server mysql-client
/etc/mysql/debian.cnf
中有mysql的初始用户和密码
(2)安装phpMyAdmin
可以去phpMyAdmin官网找到下载链接,或者直接用下面的链接,到web根目录下执行:
$ wget -c https://files.phpmyadmin.net/phpMyAdmin/4.9.1/phpMyAdmin-4.9.1-all-languages.zip
下载后执行解压命令(后面的包名就是刚刚下载的文件的包名)并将文件夹重命名:
$ unzip phpMyAdmin-4.9.1-all-languages.zip && mv phpMyAdmin-4.9.1-all-languages phpMyAdmin
(3)修改Mysql密码
可以通过http://域名/phpMyAdmin/index.php访问数据库
输入/etc/mysql/debian.cnf
文件中的用户名和密码登录,登录后选择 账户
,我的是因为之前将其他的用户直接删除了,所以只有一个用户
在自己想要的改密的用户后面选择 修改权限
,然后再选择 修改密码
,自己修改密码即可
当然,自己也可以新建账户等,方法也很简单,自行探索
评论 (0)