- unable to bind listening socket for address '/run/php/php7.1-fpm.sock' no such file or directory
原因:php-fpm
没有启动,如下启动:
# 启动命令:
sudo /etc/init.d/php7-fpm start
- 查看Ubuntu Apache2 服务器日志
tail -f /var/log/apache2/*.log
-
remote-ssh
-
启动Apache2后打开php 网站报错
sudo apache2 start
Service Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
有可能是php-fpm没有启动
sudo /etc/init.d/php7.3-fpm start
- MYSQL
# 启动mysql
sudo service mysql start
一直报错
-su: 30: export: : bad variable name
最终问题定位: 在/etc/profile
之前添加了如下语句
SET NODE_HOME=/opt/node10.16.0-linux-x64
PATH = $PAHT:NODE_HOME
删除上面自己添加的即可启动
-
WSL 暂不支持 netstat ss 等命令
# 查看MYSQL数据库中所有用户
mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
# 查看数据库中具体某个用户的权限
mysql> select * from mysql.user where user='singcl' \G
#查看user表结构 需要具体的项可结合表结构来查询
mysql> desc mysql.user;
- 数据库操作相关问题
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
# 创建新的管理员账户
https://stackoverflow.com/questions/39281594/error-1698-28000-access-denied-for-user-rootlocalhost
#
# 将新创建的管理员账号设置为密码链接
ERROR 1698 (28000): Access denied for user 'root'@'localhost' (using password: NO)
https://www.jianshu.com/p/2b63c65caf6a
# 1 启动apache2
sudo service apache2 start
# 2 启动php-fpm
sudo service php7.3-fpm start
# 3 启动mysql
sudo service mysql start
- PDO 相关问题
# 环境:Ubuntu 16.02
代码中使用PDO 时候返回 PDOException: can not find driver
。 然后我们查看phpinfo()
确认下: PDO 显示:drivers no value
说明PDO 链接MYSQL 驱动找不到。
网上搜索这个问题,答案都是挺多的, 赞成数最多的方案:
# @see https://stackoverflow.com/questions/32728860/php-7-rc3-how-to-install-missing-mysql-pdo
# 第一步安装
apt-get install php7.3-mysql
#第二步 激活
# phpenmod@see https://tecadmin.net/enable-disable-php-modules-ubuntu/
phpenmod pdo_mysql
ln: failed to create symbolic link '/etc/php/7.3/cli/conf.d/20-pdo_mysql.ini': Permission denied
rm: cannot remove '/var/lib/php/modules/7.3/cli/disabled_by_admin/pdo_mysql': Permission denied
# 可以看出来这一步会在/etc/php/7.3/cli/conf.d/ 中创建一个符号链接 到/etc/php/7.3/mods-abailable/pdo_mysql.so
# 同时创建 /var/lib/php/modules/7.3/cli/enabled_by_admin/pdo_mysql
# 权限不够sudo
sudo phpenmod pdo_mysql
# 第三步 重启
sudo service apache2 restart
然后不幸的是还是失败了!!
我观察/etc/php/7.3
中的目录 发现有个fpm。 fpm 和 cli 目录下都有php.ini 文件?
我的PHP 使用的是 apache2 fast-cgi php-fpm 方式启动的,那么配置完三个步骤我只是重启了apache, php-fpm 是不是也要重启?
sudo service php7.3-fpm restart
OK!! 成功了。
- Mysql 链接不上
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
@see https://stackoverflow.com/questions/39281594/error-1698-28000-access-denied-for-user-rootlocalhost
php -r 'phpinfo();' | grep 'mysql'
xdebug 安装文档 https://xdebug.org/docs/install#compile
vscode xdebug 文档 https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-debug
Pecl全称The PHP Extension Community Library,php社区扩展库,由社区编写,维护。
使用pecl方便之处在于我们不用到处找源码包下载编译,配置,不用手动phpize,configure,make,make install,自动识别模块安装路径,
我们只需要编辑php.ini配置文件开启扩展,当然我们也需要自己配置一些参数的时候可以先下载源码再构建
https://www.cnblogs.com/hk-faith/p/8777289.html
- php composer.phar update 时候warning:
Failed to download phpunit/phpunit-mock-objects from dist: The zip extension and unzip command are both missing, skipping.
解决:没有安装zip导致的。 sudo apt-get install zip
loacalhost # 增删改查数据库
loacalhost/canvas # canvas画布相关示例
loacalhost/scratch # 刮刮卡示例
- 初始化配置
sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ondrej/php
sudo apt-get update
- 安装主要package
# https://www.zhaokeli.com/article/8496.html
sudo apt-get install apache2 php7.3 php7.3-fpm php7.3-mysql mysql-server
- 配置apache2(关键步骤)
# https://blog.csdn.net/KBellX/article/details/78980317
# https://blog.csdn.net/margin_0px/article/details/82801045
# 配置apache 使用php-fpm fcgi
sudo ln -s /etc/apache2/mods-available/proxy.conf /etc/apache2/mods-enabled/proxy.conf
sudo ln -s /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enabled/proxy.load
sudo ln -s /etc/apache2/mods-available/proxy_fcgi.load /etc/apache2/mods-enabled/proxy_fcgi.load
sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
# 配置 2 /etc/apache2/sites-enabled/000.default.conf
1 <VirtualHost *:80>
2 # The ServerName directive sets the request scheme, hostname and port that
3 # the server uses to identify itself. This is used when creating
4 # redirection URLs. In the context of virtual hosts, the ServerName
5 # specifies what hostname must appear in the request's Host: header to
6 # match this virtual host. For the default virtual host (this file) this
7 # value is not decisive as it is used as a last resort host regardless.
8 # However, you must set it for any further virtual host explicitly.
9 ServerName mv.hongde.com
10 ServerAdmin webmaster@localhost
11 DocumentRoot /home/singcl/php_mvc
12
13 # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
14 # error, crit, alert, emerg.
15 # It is also possible to configure the loglevel for particular
16 # modules, e.g.
17 #LogLevel info ssl:warn
18 <Directory /home/singcl/php_mvc>
19 Options +FollowSymlinks
20 AllowOverride All
21 Require all granted
22 </Directory>
23
24 <FilesMatch \.php$>
25 SetHandler "proxy:unix:/var/run/php/php7.3-fpm.sock|fcgi://localhost/"
26 </FilesMatch>
27 ErrorLog ${APACHE_LOG_DIR}/error.log
28 CustomLog ${APACHE_LOG_DIR}/access.log combined
29
30 # For most configuration files from conf-available/, which are
31 # enabled or disabled at a global level, it is possible to
32 # include a line for only one particular virtual host. For example the
33 # following line enables the CGI configuration for this host only
34 # after it has been globally disabled with "a2disconf".
35 #Include conf-available/serve-cgi-bin.conf
36 </VirtualHost>
- 启动
# 1 启动apache2
sudo service apache2 start
# 2 启动php-fpm
sudo service php7.3-fpm start
# 3 启动mysql
sudo service mysql start
# root 用户登录
sudo mysql -u root -p;
# 新建用户
create user 'singcl'@'localhost' indentified by 'singcl';
# 新建数据库
create database project;
# 授权用户singcl@localhost 拥有数据库project 的所有权;
# https://blog.csdn.net/lindiwo/article/details/81708166
grant all privileges on project.* to singcl@localhost identified by 'singcl';
# 刷新
flush privileges;
# 切换用户
mysql -u singcl -p;
# 在 SQL 中新建一个 project 数据库(上面已经完成),增加一个item 表、并插入两条记录,命令如下:
#CREATE DATABASE `project` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `project`;
CREATE TABLE `item` (
`id` int(11) NOT NULL auto_increment,
`item_name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
INSERT INTO `item` VALUES(1, 'Hello World.');
INSERT INTO `item` VALUES(2, 'Lets go!');
@Refer: https://www.awaimai.com/128.html#51
- copy一份配置文件
cd /etc/cd /etc/apache2/
sudo cp httpd.conf.bak httpd.conf
- 打开配置文件编辑
sudo vim httpd.conf
- 配置web服务器目录
sudo vim extra/httpd-vhosts.conf
好了,现在配置已经完成。在/data/www下建一个文件:
touch index.php
<?php
phpinfo();
大功告成!
php SQLSTATE[HY000] [2002] No such file or directory
解决:将数据库配置里面'localhost'改为127.0.0.1
即可。
- 要想使.htaccess 重写规则生效的话:
AllowOverride None
# 改为
AllowOverride All