singcl / php_mvc
Simple and lightweight PHP framework
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 1
Open Issues: 0
Type:project
Requires
- php: 7.3
Requires (Dev)
- phpunit/phpunit: ~8.2.2
This package is auto-updated.
Last update: 2025-04-18 20:51:10 UTC
README
- 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安装php扩展
Pecl全称The PHP Extension Community Library,php社区扩展库,由社区编写,维护。
使用pecl方便之处在于我们不用到处找源码包下载编译,配置,不用手动phpize,configure,make,make install,自动识别模块安装路径,
我们只需要编辑php.ini配置文件开启扩展,当然我们也需要自己配置一些参数的时候可以先下载源码再构建
https://www.cnblogs.com/hk-faith/p/8777289.html
Composer
- 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
Page 相关页面
loacalhost # 增删改查数据库 loacalhost/canvas # canvas画布相关示例 loacalhost/scratch # 刮刮卡示例
Apache2 php7.3 php7.3-fpm
- 初始化配置
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
MYSQL
# 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
MAC 使用系统自带的Apache和PHP-FPM 开启Apache+PHP-FPM服务
- 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