1 |
r0bertz 07/10/06 18:00:37 |
2 |
|
3 |
Added: php-upgrading.xml |
4 |
Log: |
5 |
added proj/zh_cn/php/php-upgrading.xml |
6 |
|
7 |
Revision Changes Path |
8 |
1.1 xml/htdocs/proj/zh_cn/php/php-upgrading.xml |
9 |
|
10 |
file : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/zh_cn/php/php-upgrading.xml?rev=1.1&view=markup |
11 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/zh_cn/php/php-upgrading.xml?rev=1.1&content-type=text/plain |
12 |
|
13 |
Index: php-upgrading.xml |
14 |
=================================================================== |
15 |
<?xml version="1.0" encoding="utf-8"?> |
16 |
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
17 |
<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/proj/zh_cn/php/php-upgrading.xml,v 1.1 2007/10/06 18:00:36 r0bertz Exp $ --> |
18 |
<!-- English CVS version: 1.5 --> |
19 |
|
20 |
<guide link="/proj/zh_cn/php/php-upgrading.xml" lang="zh_cn"> |
21 |
<title>升级PHP</title> |
22 |
|
23 |
<author title="作者"> |
24 |
<mail link="akorthaus@×××.de">Andreas Korthaus</mail> |
25 |
</author> |
26 |
<author title="译者"> |
27 |
<mail link="jjj3112000@×××.com">Zezhou Jiang</mail> |
28 |
</author> |
29 |
|
30 |
<abstract> |
31 |
这个文档描述了最终用户安全升级PHP时所需要做的步骤。 |
32 |
</abstract> |
33 |
|
34 |
<!-- The content of this document is licensed under the CC-BY-SA license --> |
35 |
<!-- See http://creativecommons.org/licenses/by-sa/2.5 --> |
36 |
<license/> |
37 |
|
38 |
<version>1.2</version> |
39 |
<date>2007-08-11</date> |
40 |
|
41 |
<chapter> |
42 |
<title>介绍</title> |
43 |
<section> |
44 |
<body> |
45 |
|
46 |
<p> |
47 |
在过去有许多要求为什么在Portage里PHP5还没有被标记成稳定。问题不是PHP5包自身,PHP5没有被标记成稳定的主要原因是在Portage里的许多应用程序、PHP扩展和包还无法在PHP5下工作,但是我们毫无办法。PHP5不是100%地向后兼容PHP4,而且不是所有的PHP4程序可以被移植到PHP5上运行。在未来的很长一段时间内许多用户仍需要PHP4的支持。 |
48 |
</p> |
49 |
|
50 |
<p> |
51 |
这个问题的解决方案是提供一个在同一个主机同时混合PHP4和PHP5环境。但是对于现在的PHP包和eclass的界面来说是不可能的,所以必须有一个新的界面,新的eclass和新的ebuild。 |
52 |
</p> |
53 |
|
54 |
<p> |
55 |
这个文档详细描述了如何在不中断你的系统的情况下升级。 |
56 |
</p> |
57 |
|
58 |
<note> |
59 |
新的PHP包需要新的Apache界面,所以如果你还没升级,请看看<uri link="/doc/en/apache-upgrading.xml">升级Apache</uri>。 |
60 |
</note> |
61 |
|
62 |
</body> |
63 |
</section> |
64 |
</chapter> |
65 |
|
66 |
<chapter> |
67 |
<title>变化</title> |
68 |
<section> |
69 |
<title>统一的基本PHP包</title> |
70 |
<body> |
71 |
|
72 |
<p> |
73 |
所有的PHP的ebuild <c>dev-php/php</c>,<c>dev-php/php-cgi</c>和<c>dev-php/mod_php</c>已经整合成一个ebuild了:<c>dev-lang/php</c>。 |
74 |
</p> |
75 |
|
76 |
<p> |
77 |
选择你需要的SAPI,使用这些USE标记: |
78 |
</p> |
79 |
|
80 |
<ul> |
81 |
<li><c>cgi</c>——编译和安装<path>/usr/bin/php-cgi</path></li> |
82 |
<li><c>cli</c>——编译和安装<path>/usr/bin/php</path></li> |
83 |
<li><c>apache</c>——编译和安装Apache 1.3的<c>mod_php</c>(新布局)</li> |
84 |
<li><c>apache2</c>——编译和安装Apache 2.0的<c>mod_php</c>(新布局)</li> |
85 |
</ul> |
86 |
|
87 |
<p> |
88 |
你可以混合并且组合这些USE标记;除了你不能同时开启<c>apache</c>和<c>apache2</c>两个USE标记。 |
89 |
</p> |
90 |
|
91 |
<p> |
92 |
这些ebuild的所有点是你可以同时拥有PHP4和PHP5: |
93 |
</p> |
94 |
|
95 |
<pre caption="安装PHP"> |
96 |
<comment>(安装最新的有CLI和Apache2模块的PHP)</comment> |
97 |
<i>USE="cli apache2" emerge 'dev-lang/php'</i> |
98 |
|
99 |
<comment>(只安装PHP4)</comment> |
100 |
<i>USE="cli apache2" emerge '=dev-lang/php-4*'</i> |
101 |
|
102 |
<comment>(安装两种,PHP4和PHP5)</comment> |
103 |
<i>USE="cli apache2" emerge '=dev-lang/php-4*' '=dev-lang/php-5*'</i> |
104 |
</pre> |
105 |
|
106 |
<note> |
107 |
USE标记不能像这样设,请使用<path>/etc/portage/package.use</path>,这个稍后会说。 |
108 |
</note> |
109 |
|
110 |
</body> |
111 |
</section> |
112 |
|
113 |
<section> |
114 |
<title>新的Portage分类</title> |
115 |
<body> |
116 |
|
117 |
<p> |
118 |
新的PHP的ebuild已经从<c>dev-php</c>被移到<c>dev-lang/php</c>下了。为了独立地安装PHP4和PHP5,两个新的Portage分类已经被创建了:<c>dev-php4</c>和<c>dev-php5</c>。这些分类主要被用于PECL包像<c>pecl-pdo</c>,<c>pecl-apc</c>,<c>php-java-bridge</c>或<c>xdebug</c>。 |
119 |
</p> |
120 |
|
121 |
<p> |
122 |
安装<c>pecl-apc</c>: |
123 |
</p> |
124 |
|
125 |
<pre caption="安装PHP扩展像PECL::APC(示例)"> |
126 |
<comment>(只为PHP4安装APC)</comment> |
127 |
<i>emerge dev-php4/pecl-apc</i> |
128 |
|
129 |
<comment>(只为PHP5安装APC)</comment> |
130 |
<i>emerge dev-php5/pecl-apc</i> |
131 |
|
132 |
<comment>(为PHP4和PHP5安装APC)</comment> |
133 |
<i>emerge dev-php4/pecl-apc dev-php5/pecl-apc</i> |
134 |
</pre> |
135 |
|
136 |
</body> |
137 |
</section> |
138 |
|
139 |
<section> |
140 |
<title>新目录</title> |
141 |
<body> |
142 |
|
143 |
<ul> |
144 |
<li>这些ebuild会将他们的内容安装到<path>/usr/lib/php4</path>和<path>/usr/lib/php5</path>下(Apache的模块被安装到相应的Apache目录里)</li> |
145 |
<li>PEAR包和其他的PHP库文件将会被安装到<path>/usr/share/php</path>(之前是<path>/usr/lib/php</path>)</li> |
146 |
<li>PECL包已经不再往<path>php.ini</path>配置文件下添加配置知道了,但添加一个<path>[PACKAGE].ini</path>文件到<path>/etc/php/[SAPI]/ext</path>目录下。</li> |
147 |
</ul> |
148 |
|
149 |
</body> |
150 |
</section> |
151 |
|
152 |
<section> |
153 |
<title>PHP库的符号链接</title> |
154 |
<body> |
155 |
|
156 |
<p> |
157 |
如果你安装不止一个版本的PHP,如: |
158 |
</p> |
159 |
|
160 |
<pre caption="编译安装PHP4和PHP5"> |
161 |
<i>USE="cgi cli apache2" emerge '=dev-lang/php-4*' '=dev-lang/php-5*'</i> |
162 |
</pre> |
163 |
|
164 |
<p> |
165 |
ebuild将会在<path>/usr/bin</path>里为你安装的最后一个PHP版本建立链接,在这个例子中PHP5在PHP4后面装好。如果你想要<path>/usr/bin/php</path>或者<path>/usr/bin/php-cgi</path>指向PHP4,或者其中一个指向PHP4另一个指向PHP5,你可以使用来自<c>app-admin/php-toolkit</c>的<uri link="#doc_chap3_sect5">use the php-select tool</uri>。<c>php-select</c>将会使链接正确的二进制库变得十分简单。 |
166 |
</p> |
167 |
|
168 |
</body> |
169 |
</section> |
170 |
</chapter> |
171 |
|
172 |
<chapter> |
173 |
<title>升级说明</title> |
174 |
<section> |
175 |
<title>找到要升级的包</title> |
176 |
<body> |
177 |
|
178 |
<p> |
179 |
首先你要想好你要升级哪些包。你可以使用<c>equery</c>工具来达到目的,它是<c>app-portage/gentoolkit</c>包的一部分: |
180 |
</p> |
181 |
|
182 |
<pre caption="列出在dev-php中已安装的包"> |
183 |
$ <i>equery list 'dev-php/'</i> |
184 |
[ Searching for all packages in 'dev-php' among: ] |
185 |
* installed packages |
186 |
[I--] [ ] dev-php/php-4.4.0 (0) |
187 |
[I--] [ ] dev-php/mod_php-4.4.0 (1) |
188 |
[I--] [ ] dev-php/smarty-2.6.10 (0) |
189 |
[I--] [ ] dev-php/PEAR-PEAR-1.3.5-r1 (0) |
190 |
[I--] [ ] dev-php/PEAR-Mail-1.1.6 (0) |
191 |
[I--] [ ] dev-php/PEAR-MDB-1.3.0 (0) |
192 |
[I--] [ ] dev-php/PECL-apc-3.0.6 (0) |
193 |
[I--] [ ] dev-php/PECL-imagick-0.9.11 (0) |
194 |
[I--] [ ] dev-php/xdebug-2.0.0_beta3 (0) |
195 |
</pre> |
196 |
|
197 |
<impo> |
198 |
你安装好的包可能有巨大的不同,请确定你自己运行了这个命令。你应该保存上面建立好了的你的列表,来确保你将会升级所有的包。 |
199 |
</impo> |
200 |
|
201 |
<note> |
202 |
许多web应用程序因为它们不使用web应用程序eclass,所以不会受到影响,它们需要小心地正确安装。你可能想要检查一下是否那里有新的修订。 |
203 |
</note> |
204 |
|
205 |
<p> |
206 |
PHP扩展,像 |
207 |
</p> |
208 |
|
209 |
<ul> |
210 |
<li><c>PECL-apc</c></li> |
211 |
<li><c>PECL-imagick</c></li> |
212 |
<li><c>xdebug</c></li> |
213 |
</ul> |
214 |
|
215 |
<p> |
216 |
已经被分为两个Portage分类:<c>dev-php4</c>和<c>dev-php5</c>,来使它能够为两个PHP版本独立地使用它们。还有,这些包的大部分已经被重命名过了: |
217 |
</p> |
218 |
|
219 |
<p> |
220 |
新目录和重命名的示例: |
221 |
</p> |
222 |
|
223 |
<table> |
224 |
<tr> |
225 |
<th>PHP扩展</th> |
226 |
<th>旧的</th> |
227 |
<th>新PHP4</th> |
228 |
<th>新PHP5</th> |
229 |
</tr> |
230 |
<tr> |
231 |
<ti>APC</ti> |
232 |
<ti>dev-php/PECL-apc</ti> |
233 |
<ti>dev-php4/pecl-apc</ti> |
234 |
<ti>dev-php5/pecl-apc</ti> |
235 |
</tr> |
236 |
<tr> |
237 |
<ti>Imagick</ti> |
238 |
<ti>dev-php/PECL-imagick</ti> |
239 |
<ti>dev-php4/pecl-imagick</ti> |
240 |
<ti>dev-php5/pecl-imagick</ti> |
241 |
</tr> |
242 |
<tr> |
243 |
<ti>Xdebug</ti> |
244 |
<ti>dev-php/xdebug</ti> |
245 |
<ti>dev-php4/xdebug</ti> |
246 |
<ti>dev-php5/xdebug</ti> |
247 |
</tr> |
248 |
</table> |
249 |
|
250 |
<note> |
251 |
在重新编译安装这些扩展前,你必须到<path>/usr/portage</path>下找出那些包是如何被重命名的。 |
252 |
</note> |
253 |
|
254 |
</body> |
255 |
</section> |
256 |
|
257 |
<section> |
258 |
<title>移除旧的包</title> |
259 |
<body> |
260 |
|
261 |
<p> |
262 |
我们对Gentoo下的PHP做了很多改变。你必须在安装新的包前完全移除你的旧的PHP包: |
263 |
</p> |
264 |
|
265 |
<pre caption="移除旧的包(示例)"> |
266 |
<comment>(反安装PHP包)</comment> |
267 |
<i>emerge --unmerge php mod_php</i> |
268 |
|
269 |
<comment>(反安装PHP扩展)</comment> |
270 |
<i>emerge --unmerge PECL-apc PECL-imagick xdebug</i> |
271 |
|
272 |
<comment>(反安装PHP库或应用程序)</comment> |
273 |
<i>emerge --unmerge PEAR-PEAR PEAR-Mail PEAR-MDB smarty</i> |
274 |
</pre> |
275 |
|
276 |
</body> |
277 |
</section> |
278 |
|
279 |
<section> |
280 |
<title>设置USE标记</title> |
281 |
<body> |
282 |
|
283 |
<p> |
284 |
因为我们已经添加了一些新的USE标记,你可能想要重新看看它们,并且添加适当的USE标记到<path>/etc/portage/package.use</path>里(如果不存在的话需要创建) |
285 |
</p> |
286 |
|
287 |
<note> |
288 |
<path>/etc/portage/package.use</path>将会为你的PHP安装设置USE标记,并且不通过修改<path>make.conf</path>来记录他们。 |
289 |
</note> |
290 |
|
291 |
<p> |
292 |
请根据你要安装的PHP支持来设置USE标记(推荐至少要设置<c>cli</c>这个USE标记): |
293 |
</p> |
294 |
|
295 |
<pre caption="dev-lang/php的USE标记(示例)"> |
296 |
dev-lang/php -* cli apache2 ctype expat fastbuild ftp gd hash iconv memlimit mysql nls pcre pic pdo reflection session simplexml sockets spl ssl tokenizer truetype unicode xml xsl zlib |
297 |
</pre> |
298 |
|
299 |
<note> |
300 |
<c>-*</c>将会禁用所有的USE标记(它甚至会禁用一些PHP基本的特性像Session-,PCRE-,gd-和MySQL支持),所以你必须特别地为一些你想要的扩展或特性指定USE标记。请参看<uri link="http://overlays.gentoo.org/proj/php/wiki/ManagingExtensions">管理扩展</uri>来获取更多细节。你必须为以上默认的设置USE标记像这些:如果你想用<c>pcre</c>参看<uri link="http://overlays.gentoo.org/proj/php/wiki/PhpRefPcre">preg_*函数</uri>,或者你想用<c>会话</c>参看<uri link="http://overlays.gentoo.org/proj/php/wiki/PhpRefSession">会话处理函数</uri>。 |
301 |
</note> |
302 |
|
303 |
<p> |
304 |
如果你想安装同时PHP4和PHP5,你可以为每个不同版本加入不同的USE标记: |
305 |
</p> |
306 |
|
307 |
<pre caption="PHP4和PHP5 USE标记的不同(示例)"> |
308 |
=dev-lang/php-4* -* cli cgi apache2 ctype expat fastbuild force-cgi-redirect ftp gd iconv ipv6 memlimit mysql nls pcre pic posix session sockets ssl tokenizer truetype unicode xml xsl zlib |
309 |
=dev-lang/php-5* -* cli cgi apache2 ctype fastbuild force-cgi-redirect ftp gd hash iconv ipv6 memlimit mysql nls pcre pic posix pdo reflection session simplexml soap sockets spl sqlite ssl tokenizer truetype unicode xml xmlreader xmlwriter xsl zlib |
310 |
</pre> |
311 |
|
312 |
<note> |
313 |
你可以在<uri link="http://overlays.gentoo.org/proj/php/wiki/CommonQuestions">推荐的USE标记</uri>里找到推荐的USE标记列表。在overlay的维基百科<uri link="http://overlays.gentoo.org/proj/php/wiki/NewUseFlags">USE标记列表</uri>里你能找到PHP能用的USE标记的列表。</note> |
314 |
|
315 |
</body> |
316 |
</section> |
317 |
|
318 |
<section> |
319 |
<title>编译安装PHP</title> |
320 |
<body> |
321 |
|
322 |
<p> |
323 |
现在选择单独安装PHP4或单独安装PHP5,还可以同时安装。如果你要单独安装PHP4你必须emerge <c>=dev-lang/php-4*</c>,单独安装PHP5(最新)你可以用<c>dev-lang/php</c>,如果要同时安装的话,你必须emerge <c>=dev-lang/php-4*</c>和<c>=dev-lang/php-5*</c>。 |
324 |
</p> |
325 |
|
326 |
<p> |
327 |
检查USE标记设置: |
328 |
</p> |
329 |
|
330 |
<pre caption="检查USE标记(示例)"> |
331 |
<comment>(检查PHP4包)</comment> |
332 |
<i>emerge --pretend --verbose '=dev-lang/php-4*'</i> |
333 |
|
334 |
<comment>(检查PHP5包)</comment> |
335 |
<i>emerge --pretend --verbose '=dev-lang/php-5*'</i> |
336 |
|
337 |
<comment>(为PHP4检查PHP扩展)</comment> |
338 |
<i>emerge --pretend --verbose dev-php4/pecl-apc dev-php4/pecl-imagick dev-php4/xdebug</i> |
339 |
|
340 |
<comment>(为PHP5检查PHP扩展)</comment> |
341 |
<i>emerge --pretend --verbose dev-php5/pecl-apc dev-php5/pecl-imagick</i> |
342 |
|
343 |
<comment>(检查PHP库和应用程序)</comment> |
344 |
<i>emerge --pretend --verbose PEAR-PEAR PEAR-Mail PEAR-MDB smarty</i> |
345 |
</pre> |
346 |
|
347 |
<p> |
348 |
如果一切都好了,请编译安装PHP: |
349 |
</p> |
350 |
|
351 |
<pre caption="编译安装新的包(示例)"> |
352 |
<comment>(编译PHP4包)</comment> |
353 |
<i>emerge '=dev-lang/php-4*'</i> |
354 |
|
355 |
<comment>(编译PHP5包)</comment> |
356 |
<i>emerge '=dev-lang/php-5*'</i> |
357 |
|
358 |
<comment>(为PHP4编译安装扩展)</comment> |
359 |
<i>emerge dev-php4/pecl-apc dev-php4/pecl-imagick dev-php4/xdebug</i> |
360 |
|
361 |
<comment>(为PHP5编译安装扩展)</comment> |
362 |
<i>emerge dev-php5/pecl-apc dev-php5/pecl-imagick</i> |
363 |
|
364 |
<comment>(编译PHP库或应用程序)</comment> |
365 |
<i>emerge PEAR-PEAR PEAR-Mail PEAR-MDB smarty</i> |
366 |
</pre> |
367 |
|
368 |
</body> |
369 |
</section> |
370 |
|
371 |
<section> |
372 |
<title>PHP4和PHP5的相似之处:选择使用哪个cli/cgi二进制包</title> |
373 |
<body> |
374 |
|
375 |
<p> |
376 |
在你编译安装后你将会有在<path>/usr/lib/php4/bin</path>和/或<path>/usr/lib/php5/bin</path>里的<c>cli</c>和/或<c>cgi</c>的二进制包。如果你把PHP4和PHP5都装了,那么Portage不能为你决定哪一个应该被作为默认的版本,所以它总是把你安装在<path>/usr/bin</path>的最后一个版本作为默认的。所以如果你最后装了PHP5,你将会看到<path>/usr/bin/php</path>被链接到了<path>/usr/lib/php5/bin/php</path>。所以一个<c>cli</c>和/或<c>cgi</c>的二进制包和<c>php-devel</c>(为建立使用<c>phpize</c>和<c>php-config</c>的PHP扩展)必须被链接(在<path>/usr/bin</path>里),这可以很简单地用<c>app-admin/php-toolkit</c>的一部分<c>php-select</c>来完成。 |
377 |
</p> |
378 |
|
379 |
<note> |
380 |
<c>dev-lang/php</c>包依赖于<c>app-admin/php-toolkit</c>所以<c>app-admin/php-toolkit</c>应该能够在编译安装担心的PHP包以后自动启用。 |
381 |
</note> |
382 |
|
383 |
<p> |
384 |
假如你已经编译安装了<c>=dev-lang/php-4*</c>或<c>=dev-lang/php-5*</c>,输入如下命令<c>php-select</c>来看看最近选择的PHP版本: |
385 |
</p> |
386 |
|
387 |
<pre caption="列出最近选择的PHP版本"> |
388 |
<comment>(为cli)</comment> |
389 |
<i>php-select php</i> |
390 |
|
391 |
<comment>(为cgi)</comment> |
392 |
<i>php-select php-cgi</i> |
393 |
|
394 |
<comment>(为phpize,php-config)</comment> |
395 |
<i>php-select php-devel</i> |
396 |
</pre> |
397 |
|
398 |
<p> |
399 |
你应该会看到像这样的东西: |
400 |
</p> |
401 |
|
402 |
<pre caption="php-select的示例输出"> |
403 |
# <i>php-select php</i> |
404 |
/usr/bin/php is set to /usr/lib/php5/bin/php |
405 |
</pre> |
406 |
|
407 |
<p> |
408 |
这意味着默认的PHP的cli二进制包路径<path>/usr/bin/php</path>被链接到PHP5的二进制包路径<path>/usr/lib/php5/bin/php</path>下了。所以PHP脚本使用的<path>/usr/bin/php</path>会被PHP5运行。 |
409 |
</p> |
410 |
|
411 |
</body> |
412 |
</section> |
413 |
|
414 |
<section> |
415 |
<title>用php-select来改变默认的PHP版本</title> |
416 |
<body> |
417 |
|
418 |
<p> |
419 |
如果你不喜欢你在最后一章找出的默认版本设置,你可以再次使用<c>php-select</c>来选择一个想要的版本: |
420 |
</p> |
421 |
|
422 |
<pre caption="选择想要得到的版本"> |
423 |
<comment>(为cli)</comment> |
424 |
<i>php-select php php4</i> |
425 |
|
426 |
<comment>(为cgi)</comment> |
427 |
<i>php-select php-cgi php5</i> |
428 |
|
429 |
<comment>(为phpize,php-config)</comment> |
430 |
<i>php-select php-devel php5</i> |
431 |
</pre> |
432 |
|
433 |
<note> |
434 |
请输入<c>php-select -h</c>来详细了解更多<c>php-select</c>功能的细节。 |
435 |
</note> |
436 |
|
437 |
<p> |
438 |
检查符号链接: |
439 |
</p> |
440 |
|
441 |
<pre caption="检查符号链接"> |
442 |
# <i>stat /usr/bin/php /usr/bin/php-cgi /usr/bin/phpize /usr/bin/php-config | grep File</i> |
443 |
File: `/usr/bin/php' -> `/usr/lib/php4/bin/php' |
444 |
File: `/usr/bin/php-cgi' -> `/usr/lib/php5/bin/php-cgi' |
445 |
File: `/usr/bin/phpize' -> `/usr/lib/php5/bin/phpize' |
446 |
File: `/usr/bin/php-config' -> `/usr/lib/php5/bin/php-config' |
447 |
</pre> |
448 |
|
449 |
<note> |
450 |
请记住<c>php-select</c>只改变默认的版本。如果你PHP4和PHP5的cgi/cli都装了,你可以用直接路径像<path>/usr/lib/php4/bin/php</path>和<path>/usr/lib/php5/bin/php</path>来运行你个特定版本的PHP脚本。你可以在相同的Apache实例中使用PHP4和PHP5的cgi,但是你不能在相同的Apache实例中使用两个不同的PHP的Apache模块,参见<uri link="php4-php5-configuration.xml">PHP4和PHP5配置指南</uri>来得到更多细节。 |
451 |
</note> |
452 |
|
453 |
</body> |
454 |
</section> |
455 |
</chapter> |
456 |
|
457 |
<chapter> |
458 |
<title>配置文件的移动</title> |
459 |
<section> |
460 |
<body> |
461 |
|
462 |
<p> |
463 |
Gentoo的PHP包在<path>/etc/php</path>下存储配置文件,它包括每个不同PHP版本的每个SAPI的一个子目录: |
464 |
</p> |
465 |
|
466 |
<pre caption="列出PHP配置目录"> |
467 |
$ <i>ls -1 /etc/php</i> |
468 |
apache2-php4 |
469 |
apache2-php5 |
470 |
cli-php4 |
471 |
cli-php5 |
472 |
</pre> |
473 |
|
474 |
<p> |
475 |
每个子目录包含一个自己的<path>php.ini</path>,像旧的包一样。 |
476 |
</p> |
477 |
|
478 |
</body> |
479 |
</section> |
480 |
|
481 |
<section> |
482 |
<title>php.ini的改变</title> |
483 |
<body> |
484 |
|
485 |
<p> |
486 |
你应该使用<c>etc-update</c>或者<c>dispatch-conf</c>,然后看看在<path>php.ini</path>里的新旧配置的不同。两个规则你必须明确的是<c>include_path</c>和<c>extension_dir</c>。但是在这里请小心,因为<c>extension_dir</c>在两个不同的PHP版本间是不同的(在5.0和5.1间也一样!)。 |
487 |
</p> |
488 |
|
489 |
<p> |
490 |
PHP5.1在<path>/etc/php/apache2-php5/php.ini</path>和<path>/etc/php/cli-php5/php.ini</path>的示例: |
491 |
</p> |
492 |
|
493 |
<pre caption="php.ini的旧配置"> |
494 |
include_path = ".:/usr/lib/php" |
495 |
extension_dir = "/usr/lib/php/extensions/no-debug-non-zts-20050617/" |
496 |
</pre> |
497 |
|
498 |
<pre caption="php.ini的新设置"> |
499 |
include_path = ".:/usr/share/php" |
500 |
extension_dir = "/usr/lib/php5/lib/php/extensions/no-debug-non-zts-20050617/" |
501 |
</pre> |
502 |
|
503 |
<warn> |
504 |
确保你使用了<c>etc-update</c>或者<c>dispatch-conf</c>来查看所有文件的正确设置。 |
505 |
</warn> |
506 |
|
507 |
</body> |
508 |
</section> |
509 |
|
510 |
<section> |
511 |
<title>改变了的PHP扩展的配置</title> |
512 |
<body> |
513 |
|
514 |
<p> |
515 |
新的PHP包不会在<path>php.ini</path>里存储共享的PHP扩展的配置指令。这些指令会被存储在每一个扩展的在<path>/etc/php/*/ext</path>目录里的自己的配置文件里。如果要启用/禁用共享的扩展,<path>/etc/php/*/ext-active</path>的链接被使用了。如果你想要启动一个扩展,创建<path>/etc/php/*/ext-active</path>的链接到<path>/etc/php/*/ext/</path>目录里的适当的<path>[EXTENSION].ini</path>文件上。如果你想要禁用扩展,只要移除链接就好。 |
516 |
</p> |
517 |
|
518 |
<p> |
519 |
如果你之前已经装了<c>dev-php/PECL-apc</c>,APC配置文件已经储存在你的<path>php.ini</path>里了。如果你重新编译安装了型的<c>dev-php5/pecl-apc</c>包,默认的APC配置文件将会被写到<path>/etc/php/*5/ext/apc.ini</path>里。 |
520 |
</p> |
521 |
|
522 |
<p> |
523 |
所以你必须从<path>/etc/php/*5/php.ini</path>移动你的APC配置规则到<path>/etc/php/*5/ext/apc.ini</path>,然后创建一个符号链接从<path>/etc/php/*5/ext-active/apc.ini</path>到<path>/etc/php/*5/ext/apc.ini</path>。 |
524 |
</p> |
525 |
|
526 |
<note> |
527 |
如果你把PHP安装作一个Apache的模块,请确定你在安装和配置后重启了Apache。 |
528 |
</note> |
529 |
|
530 |
</body> |
531 |
</section> |
532 |
</chapter> |
533 |
|
534 |
<chapter> |
535 |
<title>配置Apache来与PhP4和/或PHP5一起工作</title> |
536 |
<section> |
537 |
<body> |
538 |
|
539 |
<p> |
540 |
为了配置Apache来加载PHP4或PHP5模块(mod_php),你应该分别添加<c>-D PHP4</c>和<c>-D PHP5</c>到在<path>/etc/conf.d/apache2</path>文件里的<c>APACHE2_OPTS</c>变量里。 |
541 |
</p> |
542 |
|
543 |
<pre caption="配置Apache来加载mod_php"> |
544 |
<comment>(为PHP4设置)</comment> |
545 |
<i>APACHE2_OPTS="-D PHP4"</i> |
546 |
|
547 |
<comment>(或者为PHP5设置)</comment> |
548 |
<i>APACHE2_OPTS="-D PHP5"</i> |
549 |
</pre> |
550 |
|
551 |
<p> |
552 |
有许多方法可以使Apache同时运行两个PHP版本。最简单的方法是把PHP4和PHP5作为一个cgi二进制库来使用,或者一个PHP4的cgi和一个PHP5的模块(或者是其他的办法)。在同一Apache实例中无法同时使用PHP4模块和PHP5模块。 |
553 |
</p> |
554 |
|
555 |
<p> |
556 |
我们创建了<uri link="php4-php5-configuration.xml">PHP4和PHP5配置指南</uri>来提供一些可能的解决方案。 |
557 |
</p> |
558 |
|
559 |
</body> |
560 |
</section> |
561 |
</chapter> |
562 |
|
563 |
<chapter> |
564 |
<title>支持和得到帮助</title> |
565 |
<section> |
566 |
<body> |
567 |
|
568 |
<p> |
569 |
如果你在使用新的Gentoo的PHP包时遇到麻烦,你可以在这里找到帮助: |
570 |
</p> |
571 |
|
572 |
<ul> |
573 |
<li> |
574 |
关于Gentoo上的PHP的<uri link="http://overlays.gentoo.org/proj/php/wiki/CommonQuestions">常见问题</uri> |
575 |
</li> |
576 |
<li> |
577 |
<uri link="http://overlays.gentoo.org/proj/php/">PHP Overlay的开发页面</uri> |
578 |
</li> |
579 |
<li> |
580 |
在irc.freenode.net上的#gentoo-php;这是一个overlay的正式作者经常逛的聊天室。我们很希望在那见到你! |
581 |
</li> |
582 |
<li> |
583 |
<uri link="http://forums.gentoo.org/">Gentoo论坛</uri>这里是寻求帮助的好地方。这里有很多每时每刻都阅读论坛的其他Gentoo用户,如果你急需得到帮助,这里是个好地方。 |
584 |
</li> |
585 |
</ul> |
586 |
|
587 |
<p> |
588 |
对于新的包的细节,你可以看看<uri link="http://article.gmane.org/gmane.linux.gentoo.devel/30050">gentoo-dev上Stuart的邮件</uri>。你也许觉得<uri link="http://blog.stuartherbert.com/php/">Stuart的PHP博客</uri>也很有趣。 |
589 |
</p> |
590 |
|
591 |
<p> |
592 |
在<uri link="http://overlays.gentoo.org/proj/php/">开发页面</uri>上,你将会发现很多文档和最近的ebuild,这些将会迟一些才被移到官方的Portage树。 |
593 |
</p> |
594 |
|
595 |
</body> |
596 |
</section> |
597 |
</chapter> |
598 |
</guide> |
599 |
|
600 |
|
601 |
|
602 |
-- |
603 |
gentoo-commits@g.o mailing list |