2013-08-06 34 views
8

Tôi đã nhìn thấy câu hỏi này đã trả lời nhiều lần, nhưng hầu hết cuối hoặc chưa được trả lời hoặc bằng cách nói Asker đặt này:Tại sao php không chạy?

<?php phpinfo() ?> 

trong một tập tin thử nghiệm. Rõ ràng, nếu điều đó tạo ra những gì được mong đợi, tôi sẽ không ở đây. Thay vào đó, tôi gặp lỗi 404.

Tôi đang sử dụng máy chủ ubuntu 12.04 với Amazon. Apache được cài đặt, php5 được cài đặt và apache được khởi động lại. Tôi đi theo trình tự sau đây:

sudo apt-get install apache2 

sudo apt-get install php5 

sudo apt-get install libapache2-mod-php5 

sudo /etc/init.d/apache2 restart 

Mỗi một trong ba lệnh đầu tiên tại mang lại cho tôi "apache2 đã là phiên bản mới nhất 0 nâng cấp, 0 mới được cài đặt, 0 để loại bỏ và 3 không được nâng cấp" Rõ ràng, thay thế apache2 với php5 và libapache2-mod-php5 cho hai cái kia.

Đây là cách chắc chắn để cho tôi biết nó đã được cài đặt đúng chưa? Vâng, khi tôi sử dụng lệnh "top", php không phải là một trong những dịch vụ đang chạy, mà nói với tôi nó không chạy, đúng không?

Điều hướng đến địa chỉ IP mang đến cho tôi "Hoạt động!" Của Amazon , nhưng điều hướng đến bất kỳ trang nào khác trên máy chủ sẽ tạo ra lỗi 404.

Bất kỳ giúp đỡ được nhiều đánh giá cao.

+3

hãy thử cách này: phpinfo(); – Maximus2012

+2

phpinfo là một hàm. sử dụng 'phpinfo()'. – Mic1780

+0

Bạn có ý gì bởi bất kỳ trang nào khác –

Trả lời

9

Kiểm tra tệp cấu hình apache. Đối với Debian/Ubuntu, chúng nằm trong số /etc/apache2/sites-available/ đối với RedHat/CentOS/etc, chúng nằm trong số /etc/httpd/conf.d/. Nếu bạn vừa mới cài đặt, tệp có thể có tên là default.

Đảm bảo rằng tệp cấu hình trong đó trỏ đến thư mục chính xác và sau đó đảm bảo tập lệnh của bạn được đặt ở đó.

Dòng bạn đang tìm kiếm trong các tệp đó là DocumentRoot /path/to/directory.

Để cài đặt trống, tệp php của bạn rất có thể cần phải ở trong /var/www/.

Điều bạn cũng cần làm là tìm tệp php.ini của mình, có thể nằm ở số /etc/php5/apache2/php.ini hoặc /etc/php.ini và tìm mục nhập cho display_errors và chuyển sang số On.

+0

Ahh! Cám ơn rất nhiều! Tôi đã nghi ngờ rằng tôi đã ở sai chỗ, nhưng tôi đã nói đó là thư mục chính xác. Tôi sẽ phải viết cái này xuống để tham khảo sau này. – Christian

+0

Tôi vẫn không chắc tại sao "top" không hiển thị php, nhưng tôi đã tạo một tệp php trong thư mục đó và nó hoạt động tốt. – Christian

+0

hàng đầu? như trong lệnh 'top'? Nó sẽ không hiển thị php, nó sẽ hiển thị như apache. nhưng tôi rất vui vì tôi có thể giúp! – castis

-5

Bạn cần phải thêm dấu chấm phẩy để kết thúc tất cả những điều php như echo, chức năng, vv

thay đổi <?php phpinfo() ?>-<?php phpinfo(); ?>

Nếu điều đó không làm việc, sử dụng chức năng ini_set php để hiển thị lỗi: ini_set('display_errors', 1);

+4

nếu một hàm là điều duy nhất bên trong thẻ php, dấu chấm phẩy không quan trọng. – castis

+1

bạn chính xác là @castis. nhưng đó là cách thực hành tốt nhất. hãy xem tại đây: http://stackoverflow.com/a/2038751/1637737 vì vậy thực sự vẫn còn dấu chấm phẩy. php chỉ đủ thông minh để khắc phục sự cố cho người lười biếng. – Mic1780

+3

thats tốt đẹp và tất cả, nhưng nó không giúp anh ta với vấn đề của mình. – castis

0

Khi cài đặt Apache và PHP dưới Ubuntu 14.04, tôi cần phải cho phép đặc biệt configs php bằng cách phát hành a2enmod php5-cgi

5

Một Gotcha lớn là PHP được vô hiệu hóa trong thư mục người sử dụng nhà theo mặc định, vì vậy nếu bạn đang thử nghiệm từ public_html nó không hoạt động. Kiểm tra /etc/apache2/mods-enabled/php5.conf

# Running PHP scripts in user directories is disabled by default 
# 
# To re-enable PHP in user directories comment the following lines 
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it 
# prevents .htaccess files from disabling it. 
#<IfModule mod_userdir.c> 
# <Directory /home/*/public_html> 
#  php_admin_flag engine Off 
# </Directory> 
#</IfModule> 

Ngoài ra cài đặt trong Ubuntu là có thật dễ dàng, như tất cả những thứ bạn thường phải đặt trong httpd.conf được thực hiện tự động.

+0

làm việc cho tôi – spankmaster79

0

Nhập trình duyệt localhost: 80 // test5.php [trong đó 80 là cổng của bạn và test.php là tên tệp của bạn] thay vì c: //xampp/htdocs/test.php.

Các vấn đề liên quan