Laravel 所需的 PHP Extension
OpenSSL PHP Extension
PDO PHP Extension
Mbstring PHP Extension
Tokenizer PHP Extension
尚未開啟前,顯示以下錯誤訊息: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
->
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for laravel/framework v5.3.21 -> satisfiable by laravel/framework[v5.3.21 ].
- laravel/framework v5.3.21 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
Problem 2
- Installation request for phpunit/phpunit 5.6 .2 -> satisfiable by phpunit/phpunit[5.6 .2 ].
- phpunit/phpunit 5.6 .2 requires ext-dom * -> the requested PHP extension dom is missing from your system.
To enable extensions, verify that they are enabled in those .ini files:
- /etc/php.ini
- /etc/php.d/bz2.ini
- /etc/php.d/calendar.ini
- /etc/php.d/ctype.ini
- /etc/php.d/curl.ini
- /etc/php.d/exif.ini
- /etc/php.d/fileinfo.ini
- /etc/php.d/ftp.ini
- /etc/php.d/gettext.ini
- /etc/php.d/gmp.ini
- /etc/php.d/iconv.ini
- /etc/php.d/json.ini
- /etc/php.d/opcache.ini
- /etc/php.d/phar.ini
- /etc/php.d/shmop.ini
- /etc/php.d/simplexml.ini
- /etc/php.d/sockets.ini
- /etc/php.d/tokenizer.ini
- /etc/php.d/xml.ini
- /etc/php.d/zip.ini
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
檢視目前開啟的 PHP Configuration File 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$ php --ini
Configuration File (php.ini) Path: /etc
Loaded Configuration File: /etc/php.ini
Scan for additional .ini files in : /etc/php.d
Additional .ini files parsed: /etc/php.d/bz2.ini ,
/etc/php.d/calendar.ini ,
/etc/php.d/ctype.ini ,
/etc/php.d/curl.ini ,
/etc/php.d/exif.ini ,
/etc/php.d/fileinfo.ini ,
/etc/php.d/ftp.ini ,
/etc/php.d/gettext.ini ,
/etc/php.d/gmp.ini ,
/etc/php.d/iconv.ini ,
/etc/php.d/json.ini ,
/etc/php.d/opcache.ini ,
/etc/php.d/phar.ini ,
/etc/php.d/shmop.ini ,
/etc/php.d/simplexml.ini ,
/etc/php.d/sockets.ini ,
/etc/php.d/tokenizer.ini ,
/etc/php.d/xml.ini ,
/etc/php.d/zip.ini
設定 php.ini Loaded Configuration File: /etc/php.ini
根據 Problem 1 描述,需要安裝 ext-mbstring
可先檢查目前裝了哪些 PHP 的 Modules (檢視後的確沒有 ext-mbstring 這個模組)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
->
[PHP Modules]
bz2
calendar
Core
ctype
curl
date
exif
fileinf o
filter
ftp
gettext
gmp
hash
iconv
json
libxml
openssl
pcntl
pcre
Phar
readline
Reflection
session
shmop
SimpleXML
sockets
SPL
standard
tokenizer
xml
Zend OPcache
zip
zlib
[Zend Modules]
Zend OPcache
開始安裝 php-mbstring 1
$ yum install php-mbstring
錯誤訊息:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
->
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: download.nus.edu.sg
* epel: epel.mirror.angkasa.id
* extras: mirror.0x.sg
* ius: mirrors.ircam.fr
* remi-safe: mirror.innosol.asia
* updates: download.nus.edu.sg
* webtatic: uk.repo.webtatic.com
Resolving Dependencies
--> Running transaction check
---> Package php-mbstring.x86_64 0:5.4.16-36.3.el7_2 will be installed
--> Processing Dependency: php-common(x86-64) = 5.4.16-36.3.el7_2 for package: php-mbstring-5.4.16-36.3.el7_2.x86_64
--> Running transaction check
---> Package php-common.x86_64 0:5.4.16-36.3.el7_2 will be installed
--> Processing Conflict: php70w-common-7.0.12-1.w7.x86_64 conflicts php-common < 7.0
--> Finished Dependency Resolution
Error: php70w-common conflicts with php-common-5.4.16-36.3.el7_2.x86_64
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
可能原因:
php-common 使用的是 5.4
需要安裝 php-mbstring for php7
使用 yum search 檢查有哪些版本: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-> # yum search php-mbstring
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: download.nus.edu.sg
* epel: epel.mirror.angkasa.id
* extras: mirror.0 x .sg
* iu s: syd.mirror.rackspace.com
* remi-safe: mirrors.thzhost.com
* update s: download.nus.edu.sg
* webtatic: uk.repo.webtatic.com
======================================================================================== N /S matched: php-mbstring ========================================================================================
php-mbstring.x86_64 : A module for PHP applications which need multi-byte string handling
php56-php-mbstring.x86_64 : A module for PHP applications which need multi-byte string handling
php70-php-mbstring.x86_64 : A module for PHP applications which need multi-byte string handling
php71-php-mbstring.x86_64 : A module for PHP applications which need multi-byte string handling
Name and summary matches only , use "search all" for everything.
安裝 php70-php-mbstring.x86_64-> # yum install php70-php-mbstring.x86_64
不論是重新編譯或者安裝 php-mbstring 套件, 完成後都要重新啟動 HTTPD 伺服器才會生效。
重新啟動-> # service httpd restart
yum 用法整理:http://www.vixual.net/blog/archives/101
補充:在 Apache、Nginx 上面運行 PHP Apache 需要安裝 mod_php
這個 Apache module Nginx 需要安裝 PHP-FPM
來運行 PHP code