整理PHP开发资料,整理php开发
一,关于
为阿里云centos PHP 开发制作标准流程 -- 程学源 于 2018年1月31日
二,Linux服务器
1,虚拟机
下载方法百度搜索“虚拟机VMware Workstation” 下载64位
安装后搜索注册码
下载Linux Centos ISO镜像文件DVD标准版 https://www.centos.org/download/
注意事项:创建新的虚拟机 -> 选择中文语言 -> 最小安装 选择基础 -> 以太网配置
安装。。。。。
遇到问题:打开虚拟机服务,启用网络适配器才能配置以太网
2,远程连接工具
下载 SecureCRT 用户远程连接服务器 注册机网盘内有
下载Winscrp 用于传输文件
3,Nginx
镜像源切换
先把YUM源切换成国内的镜像源
先备份一下原来的源镜像文件
# cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载新的CentOS-Base.repo
#wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
如果没有安装wget的话可以使用#yum install wget安装完成之后,在执行CentOS-Base.repo的安装
对/etc/yum.repos.d/CentOS-Media.repo源文件配置文件,改为不生效
enable=0
YUM缓存生成
#yum clean all
#yum makecache
#yum update
安装Nginx
YUM源中没有Nginx,我们需要增加一个nginx的源nginx.repo
# vi /etc/yum.repos.d/nginx.repo
源文件的内容
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
查看Nginx是否配置成功
#yum list nginx
已加载插件:fastestmirror
nginx | 2.9 kB 00:00:00
nginx/7/x86_64/primary_db | 18 kB 00:00:04
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
可安装的软件包
nginx.x86_64 1:1.10.2-1.el7.ngx nginx
#yum list |grep nginx
nginx.x86_64 1:1.10.2-1.el7.ngx nginx nginx-debug.x86_64 1:1.8.0-1.el7.ngx nginx nginx-debuginfo.x86_64 1:1.10.2-1.el7.ngx nginx nginx-module-geoip.x86_64 1:1.10.2-1.el7.ngx nginx nginx-module-geoip-debuginfo.x86_64 1:1.10.2-1.el7.ngx nginx nginx-module-image-filter.x86_64 1:1.10.2-1.el7.ngx nginx nginx-module-image-filter-debuginfo.x86_64 1:1.10.2-1.el7.ngx nginx nginx-module-njs.x86_64 1:1.10.2.0.0.20160414.1c50334fbea6-2.el7.ngx
nginx nginx-module-njs-debuginfo.x86_64 1:1.10.2.0.0.20160414.1c50334fbea6-2.el7.ngx
nginx nginx-module-perl.x86_64 1:1.10.2-1.el7.ngx nginx nginx-module-perl-debuginfo.x86_64 1:1.10.2-1.el7.ngx nginx nginx-module-xslt.x86_64 1:1.10.2-1.el7.ngx nginx nginx-module-xslt-debuginfo.x86_64 1:1.10.2-1.el7.ngx nginx nginx-nr-agent.noarch 2.0.0-10.el7.ngx nginx pcp-pmda-nginx.x86_64 3.10.6-2.el7 base
安装成功后,就可以直接安装nginx了
#yum -y install nginx
安装的就是Nginx官网的最新版本
#nginx #启动Nginx
可以使用curl命令查看是否安装成功
#curl 127.0.0.1
如果安装成功的话,就会看到输出一个HTML的一个反馈
<!DOCTYPE html><html><head><title>Welcome to nginx!</title><style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}</style></head><body><h1>Welcome to nginx!</h1><p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p></body></html>
开机启动设置
#systemctl enable nginx
#systemctl daemon-reload
错误提示
The stream or file "/usr/share/nginx/html/shz/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied
chmod -R 777 storage
查看SELinux状态:
1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态
SELinux status: enabled
2、getenforce ##也可以用这个命令检查
关闭SELinux:
1、临时关闭(不用重启机器):
setenforce 0 ##设置SELinux 成为permissive模式
##setenforce 1 设置SELinux 成为enforcing模式
2、修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可
配置
location / {
try_files \$uri \$uri/ /index.php?\$query_string;
}
4,Mysql
1:由于centos7 默认使用yum安装MySQL的话就会安装mariadb,只是安装的版本停留在mariadb5.x,版本比较低。如果我们需要安装mariadb10这里就需要删除mariadb-libs-5.5.52-1.el7.x86_64,这是系统默认安装的。
rpm -qa mariadb-libs
yum remove mariadb-libs
2:配置mariadb的yum仓库,这里我们选择在/etc/yum.repos.d/下直接创建仓库文件
文件内容访问选择查看 http://downloads.mariadb.org/mariadb/repositories/
#内容如下
# MariaDB 10.1 CentOS repository list - created 2017-02-23 08:53 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
3:sudo yum install MariaDB-server MariaDB-client
4:使用systemctl start mariadb 开启 systemctl enable mariadb 开机自动启动
mysql -u root -p
Use mysql ;
update user set password = password('123') where user = 'root';
flush privileges;
5,PHP
参考:https://webtatic.com/
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install mod_php72w php72w-opcache php72w-common php72w-fpm php72w-cli php72w-mbstring php72w-gd php72w-mysqlnd php72w-devel
修改根目录
修改 /etc/nginx/conf.d/default.conf
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;
include fastcgi_params;
}
Package | Provides |
|
mod_php72w | php72w, mod_php, php72w-zts | 重要模块 |
php72w-bcmath |
| 精确计算 |
php72w-cli | php-cgi, php-pcntl, php-readline | cli : Command Line Interface(命令行接口) |
php72w-common | php-api, php-bz2, php-calendar, php-ctype, php-curl, php-date, php-exif, php-fileinfo, php-filter, php-ftp, php-gettext, php-gmp, php-hash, php-iconv, php-json, php-libxml, php-openssl, php-pcre, php-pecl-Fileinfo, php-pecl-phar, php-pecl-zip, php-reflection, php-session, php-shmop, php-simplexml, php-sockets, php-spl, php-tokenizer, php-zend-abi, php-zip, php-zlib |
|
php72w-dba |
| 数据库 |
php72w-devel |
| 开发development |
php72w-embedded | php-embedded-devel | 嵌入式 |
php72w-enchant |
| 各种拼写库的抽象层 |
php72w-fpm |
| 你(PHP)去和爱斯基摩人(web服务器,如 Apache、Nginx)谈生意 你说中文(PHP代码),他说爱斯基摩语(C代码),互相听不懂,怎么办?那就都把各自说的话转换成英语(FastCGI 协议)吧。 怎么转换呢?你就要使用一个翻译机(PHP-FPM) 我们这个翻译机是最新型的,老式的那个(PHP-CGI)被淘汰了。不过它(PHP-FPM)只有年轻人(Linux系统)会用,老头子们(Windows系统)不会摆弄它,只好继续用老式的那个。
|
php72w-gd |
| GD库是php处理图形的扩展库 |
php72w-imap |
| 读取邮件 |
php72w-interbase | php_database, php-firebird | 关系数据管理系统 |
php72w-intl |
|
|
php72w-ldap |
|
|
php72w-mbstring |
|
|
php72w-mysql | php-mysqli, php_database |
|
php72w-mysqlnd | php-mysqli, php_database |
|
php72w-odbc | php-pdo_odbc, php_database |
|
php72w-opcache | php72w-pecl-zendopcache |
|
php72w-pdo | php72w-pdo_sqlite, php72w-sqlite3 |
|
php72w-pdo_dblib | php72w-mssql |
|
php72w-pear |
|
|
php72w-pecl-apcu |
|
|
php72w-pecl-imagick |
|
|
php72w-pecl-mongodb |
|
|
php72w-pgsql | php-pdo_pgsql, php_database |
|
php72w-phpdbg |
| debug |
php72w-process | php-posix, php-sysvmsg, php-sysvsem, php-sysvshm |
|
php72w-pspell |
|
|
php72w-recode |
|
|
php72w-snmp |
| 路由器开启SNMP功能之后,它能够对自己的每个接口上的流量有一个统计 |
php72w-soap |
| SOAP 是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息 |
php72w-tidy |
| PHP+Tidy-完美的XHTML纠错+过滤
|
php72w-xml | php-dom, php-domxml, php-wddx, php-xsl |
|
php72w-xmlrpc |
| RPC(Remote Procedure Call)—远程过程调用 |
三,开发环境搭建
1,SVN
http://subversion.apache.org/packages.html
服务器版本TortoiseSVN
客户端VisualSVN
·
2,Eclipse(zend studio 安装)
New Project --> Other --> PHP --> Project From Remote Server
四,Laravel框架
如何安装 Composer
下载 Composer
安装前请务必确保已经正确安装了 PHP。打开命令行窗口并执行 php -v 查看是否正确输出版本号。
打开命令行并依次执行下列命令安装最新版本的 Composer:
复制
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
复制
php composer-setup.php
复制
php -r "unlink('composer-setup.php');"
执行第一条命令下载下来的 composer-setup.php 脚本将简单地检测 php.ini 中的参数设置,如果某些参数未正确设置则会给出警告;然后下载最新版本的 composer.phar 文件到当前目录。
上述 3 条命令的作用依次是:
下载安装脚本 - composer-setup.php - 到当前目录。
执行安装过程。
删除安装脚本。
局部安装
上述下载 Composer 的过程正确执行完毕后,可以将 composer.phar 文件复制到任意目录(比如项目根目录下),然后通过 php composer.phar 指令即可使用 Composer 了!
全局安装
全局安装是将 Composer 安装到系统环境变量 PATH 所包含的路径下面,然后就能够在命令行窗口中直接执行 composer 命令了。
php /usr/local/lnmp/composer/composer.phar create-project laravel/laravel --prefer-dist
Mac 或 Linux 系统:
打开命令行窗口并执行如下命令将前面下载的 composer.phar 文件移动到 /usr/local/bin/目录下面:
复制
sudo mv composer.phar /usr/local/bin/composer
Windows 系统:
找到并进入 PHP 的安装目录(和你在命令行中执行的 php 指令应该是同一套 PHP)。
将 composer.phar 复制到 PHP 的安装目录下面,也就是和 php.exe 在同一级目录。
在 PHP 安装目录下新建一个 composer.bat 文件,并将下列代码保存到此文件中。
复制
@php "%~dp0composer.phar" %*
最后重新打开一个命令行窗口试一试执行 composer --version 看看是否正确输出版本号。
最后
提示:不要忘了经常执行 composer selfupdate 以保持 Composer 一直是最新版本哦!
FAQ
注意: 如果你的问题涉及到执行 composer 命令,请在命令末尾添加 -vvv 参数输出详细日志,例如:
复制
composer install -vvv
composer update -vvv
五,代码
参考文档:
https://ninghao.net/blog/1368
https://www.jianshu.com/p/02baa54283ba
PHP之友评论