常见问题
如何安装swoole
1.编译安装
Swoole扩展是按照PHP标准扩展构建的。使用phpize来生成编译检测脚本,./configure来做编译配置检测,make进行编译,make install进行安装。
- 请下载releases版本的swoole,直接从github主干上拉取最新代码可能会编译不过
- 如果当前用户不是
root,可能没有PHP安装目录的写权限,安装时需要sudo或者su - 如果是在
git分支上直接git pull更新代码,重新编译前务必要执行make clean
2.安装准备
安装swoole前必须保证系统已经安装了下列软件
php-5.3.10 或更高版本,FaShop 要求的php版本是>=7.2 gcc-4.4 或更高版本 make autoconf pcre (centos系统可以执行命令:yum install pcre-devel)
3.下载地址,注意了请下载安装1.10.x版本的发行包,FaShop是基于1.10.x版本开发的,推荐使用1.10.5版本。
- https://github.com/swoole/swoole-src/releases
- http://pecl.php.net/package/swoole
- http://git.oschina.net/swoole/swoole
下载源代码包后,在终端进入源码目录,执行下面的命令进行编译和安装
cd swoolesudo phpize (ubuntu 没有安装phpize可执行命令:sudo apt-get install php-dev来安装phpize)sudo ./configuresudo makesudo make install强烈希望: /usr/local/php/bin/php -v 可以查看php版本:[/usr/local/php/bin/php 根据自己linux系统php安装目录决定]所以第二步sudo phpize 最好使用:[root@fashop fashop] /usr/local/php/bin/phpize 命令同理第三步sudo ./configure最好使用:[root@fashop fashop]./configure --with-php-config=/usr/local/php/bin/php-config 命令[/usr/local/php/bin/ 根据自己Linux php目录决定,同第二步路径]这样swoole 就会被安装在 /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/ 下[no-debug-non-zts-20170718文件夹不是一模一样的] ,否则则会被安装在/usr/lib64/php/modules/ 下。以上会能帮助你减少一些安装出现的问题 假如你对Linux不是很熟的话,一定要仔细阅读强烈希望的内容。
4.完整编译示例
以下脚本会下载并编译master分支的swoole源码
mkdir -p ~/build && \cd ~/build && \rm -rf ./swoole-src && \curl -o ./tmp/swoole.tar.gz https://github.com/swoole/swoole-src/archive/master.tar.gz -L && \tar zxvf ./tmp/swoole.tar.gz && \mv swoole-src* swoole-src && \cd swoole-src && \phpize && \./configure \--enable-coroutine \--enable-openssl \--enable-http2 \--enable-async-redis \--enable-sockets \--enable-mysqlnd && \make clean && make && sudo make install
5.PECL,不建议这么安装因为总能遇到一些问题
swoole项目已收录到PHP官方扩展库,除了手工下载编译外,还可以通过PHP官方提供的pecl命令,一键下载安装swoole
pecl install swoole
6.配置php.ini
编译安装成功后,修改php.ini加入
extension=swoole.so
通过php -m或phpinfo()来查看是否成功加载了swoole,如果没有可能是php.ini的路径不对,可以使用php --ini来定位到php.ini的绝对路径。
如何安装ImageMagick
1.安装编译工具:
[root@fashop fashop] yum install wget make gcc gcc-c++ gtk+-devel zlib-devel openssl openssl-devel pcre-devel kernel keyutils patch perl
2.安装ImageMagick
[注释:下载ImageMagick][root@fashop fashop] wget http://www.imagemagick.org/download/ImageMagick.tar.gz[注释:解压][root@fashop fashop] tar zxvf ImageMagick.tar.gz[注释:进入安装目录][root@fashop fashop] cd ImageMagick-7.0.8-11[注释:配置。 强烈希望:使用命令 ./configure --with-php-config=/usr/local/php/bin/php-config 具体原因参考:如何安装swoole第三步的强烈希望][root@fashop fashop] ./configure [强烈希望使用命令:./configure --with-php-config=/usr/local/php/bin/php-config][注释:编译][root@fashop fashop] make[注释:安装][root@fashop fashop] make install
3.安装imagick
[注释:下载imagick][root@fashop fashop] wget http://pecl.php.net/get/imagick-3.4.3.tgz[注释:解压][root@fashop fashop] tar zxvf imagick-3.4.3.tgz[注释:进入安装目录][root@fashop fashop] cd imagick-3.4.3[注释:用phpize生成configure配置文件。这是多次强调的强烈希望的命令行代码 一般是 phpize 命令 具体原因参考:如何安装swoole第三步的强烈希望][root@fashop fashop] /usr/local/php/bin/phpize[注释:配置。这是多次强调的强烈希望的命令行代码 一般是 ./configure 命令 具体原因参考:如何安装swoole第三步的强烈希望][root@fashop fashop] ./configure --with-php-config=/usr/local/php/bin/php-config[注释:编译][root@fashop fashop] make[注释:安装][root@fashop fashop] make install备注:在安装过程中出现错误,一般是由于缺少编译工具包导致,可根据提示参照第一步安装相应的工具包即可安装完成之后,出现下面的界面,记住以下路径,后面会用到Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/ #imagick模块路径
4.配置php支持imagick, 编辑配置文件/etc/php.ini,在最后一行添加以下内容:extension=imagick.so
5.测试:可以使用phpinfo(); 或者php -m查看是否加载了 imagick。如果没有 重启php服务试试。
6.命令行注释:
service php-fpm restart #重启php服务service nginx restart #重启nginx
如何安装Composer
Composer 需要 PHP 5.3.2+ 才能运行。
curl -sS https://getcomposer.org/installer | php
这个命令会将 composer.phar 下载到当前目录。PHAR(PHP 压缩包)是一个压缩格式,可以在命令行下直接运行。
你可以使用 --install-dir 选项将 Composer 安装到指定的目录,例如:
curl -sS https://getcomposer.org/installer | php -- --install-dir=bin
当然也可以进行全局安装:
curl -sS https://getcomposer.org/installer | phpmv composer.phar /usr/local/bin/composer
在 Mac OS X 下也可以使用 homebrew 安装:
brew install composer
注释:如果composer install或者update慢的情况,可以切换镜像到国内:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
如何配置Linux服务器及安装php环境
首先更新系统软件$ yum update
安装nginx
1.安装nginx源
yum localinstall http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
2.安装nginx
yum install nginx
3.启动nginx
service nginx start
Redirecting to /bin/systemctl start nginx.service
4.访问http://你的ip/
如果成功安装会出来nginx默认的欢迎界面
安装MySQL5.7.*
1.安装mysql源
yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
2.安装mysql
yum install mysql-community-server
确认一下mysql的版本,有时可能会提示mysql5.6
3.安装mysql的开发包,以后会有用
yum install mysql-community-devel
4.启动mysql
service mysqld start
Redirecting to /bin/systemctl start mysqld.service
5.查看mysql启动状态
service mysqld status
出现pid
证明启动成功
6.获取mysql默认生成的密码
grep 'temporary password' /var/log/mysqld.log
2018-08-28T16:32:09.104758Z 1 [Note] A temporary password is generated for root@localhost: %G1Rgns!dD!v
加粗的就是生成的密码
7.换成自己的密码
mysql -uroot -p
Enter password:输入上面的密码
成功输入后进入一下步,这里你估计会输入 好几次才进去
8.更换密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
这个密码一定要足够复杂,不然会不让你改,提示密码不合法;
9.退出mysql;
mysql> quit;
10.用新密码再登录,试一下新密码
mysql -uroot -p
Enter password:输入你的新密码
11.确认密码正确后,退出mysql;
mysql> quit;
编译安装php7.2.0
1.下载php72源码包
cd /root & wget -O php72.tar.gz http://cn2.php.net/get/php-7.2.0.tar.gz/from/this/mirror
2.解压源码包
tar -xvf php72.tar.gz
3.进入解压的目录
cd php72.tar.gz
如果这个目录名字不对,以你当时解压的名字稳准
4.安装php依赖包
yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel
5.编译配置,这一步我们会遇到很多configure error,我们一一解决,基本都是相关软件开发包没有安装导致
./configure \--prefix=/usr/local/php \--with-config-file-path=/etc \--enable-fpm \--with-fpm-user=nginx \--with-fpm-group=nginx \--enable-inline-optimization \--disable-debug \--disable-rpath \--enable-shared \--enable-soap \--with-libxml-dir \--with-xmlrpc \--with-openssl \--with-mcrypt \--with-mhash \--with-pcre-regex \--with-sqlite3 \--with-zlib \--enable-bcmath \--with-iconv \--with-bz2 \--enable-calendar \--with-curl \--with-cdb \--enable-dom \--enable-exif \--enable-fileinfo \--enable-filter \--with-pcre-dir \--enable-ftp \--with-gd \--with-openssl-dir \--with-jpeg-dir \--with-png-dir \--with-zlib-dir \--with-freetype-dir \--enable-gd-native-ttf \--enable-gd-jis-conv \--with-gettext \--with-gmp \--with-mhash \--enable-json \--enable-mbstring \--enable-mbregex \--enable-mbregex-backtrack \--with-libmbfl \--with-onig \--enable-pdo \--with-mysqli=mysqlnd \--with-pdo-mysql=mysqlnd \--with-zlib-dir \--with-pdo-sqlite \--with-readline \--enable-session \--enable-shmop \--enable-simplexml \--enable-sockets \--enable-sysvmsg \--enable-sysvsem \--enable-sysvshm \--enable-wddx \--with-libxml-dir \--with-xsl \--enable-zip \--enable-mysqlnd-compression-support \--with-pear \--enable-opcache
下面列取一些错误解决方案,如果没遇见错误请忽略:
configure error:
错误1.configure: error: xml2-config not found. Please check your libxml2 installation.
解决:
yum install libxml2 libxml2-devel
错误2.configure: error: Cannot find OpenSSL’s <evp.h>
解决:
yum install openssl openssl-devel
错误3.configure: error: Please reinstall the BZip2 distribution
解决:
yum install bzip2 bzip2-devel
错误4.configure: error: Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl/
解决:
yum install libcurl libcurl-devel
错误5.If configure fails try —with-webp-dir=<DIR> configure: error: jpeglib.h not found.
解决:
yum install libjpeg libjpeg-devel
错误6.If configure fails try —with-webp-dir=<DIR>
checking for jpeg_read_header in -ljpeg… yes
configure: error: png.h not found.
解决:
yum install libpng libpng-devel
错误7.If configure fails try —with-webp-dir=<DIR>
checking for jpeg_read_header in -ljpeg… yes
checking for png_write_image in -lpng… yes
If configure fails try —with-xpm-dir=<DIR>
configure: error: freetype-config not found.
解决:
yum install freetype freetype-devel
错误8.configure: error: Unable to locate gmp.h
$ yum install gmp gmp-devel
错误9.configure: error: mcrypt.h not found. Please reinstall libmcrypt.
解决:
yum install libmcrypt libmcrypt-devel
错误10.configure: error: Please reinstall readline - I cannot find readline.h
解决:
yum install readline readline-devel
错误11.configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
解决:
yum install libxslt libxslt-devel
6.继续安装php,编译与安装
make && make install
这里要make好久,要耐心一下
7.添加 PHP 命令到环境变量
vim /etc/profile
在末尾加入
PATH=$PATH:/usr/local/php/binexport PATH
要使改动立即生效执行
./etc/profile
或
source /etc/profile
查看环境变量
echo $PATH
查看php版本
php -v
8.配置php-fpm,使用FaShop的话php-fpm实际是用不到的,考虑到服务器会有其他php-fpm的项目,如果需要可以一起配置了吧
cp php.ini-production /etc/php.inicp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.confcp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.confcp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpmchmod +x /etc/init.d/php-fpm
9.启动php-fpm
/etc/init.d/php-fpm start
配置nginx虚拟机,绑定域名
1.注意:FaShop不是这么配置,请参考安装部分的介绍
vim /etc/nginx/conf.d/你的项目.conf
这里可以把你的项目.conf改成自己的域名
把下面的内容复制到你的项目.conf里
2.重启nginx
service nginx reload
完事!访问您刚才配置的域名试试。
