GNU/Linux >> Linux Esercitazione >  >> Panels >> cPanel

Script PHP open_basedir Restrizione nell'Effetto Errore

PHP open_basedir protection tweak è una misura di sicurezza in modalità provvisoria che impedisce agli utenti di aprire file o script situati al di fuori della loro home directory con PHP, a meno che la cartella non sia stata specificamente esclusa. L'impostazione PHP open_basedir, se abilitata, assicurerà che tutte le operazioni sui file siano limitate ai file in una determinata directory e quindi impedirà agli script php per un particolare utente di accedere ai file nell'account di un utente non autorizzato. Quando uno script tenta di aprire un file con, ad esempio, fopen() o gzopen(), viene verificata la posizione del file. Quando il file è al di fuori dell'albero di directory specificato o consentito, PHP rifiuterà di aprirlo e potrebbero verificarsi i seguenti errori:

Avviso:file_exists() [function.file-exists]:restrizione open_basedir in vigore. Il file(/home/user_name/public_html/wp-content/uploads/2006/12/picture.jpg) non è all'interno dei percorsi consentiti:(/home/user_name:/usr/lib/php:/usr/local /lib/php:/tmp) in /home/user_name/public_html/wp-admin/inline-uploading.php alla riga 226

Il messaggio di errore sopra viene visualizzato su un registro degli errori del server Web Apache httpd (error_log) che ospita un blog WordPress. Tuttavia, il problema potrebbe verificarsi in tutti i sistemi o siti Web che utilizzano PHP come linguaggio di scripting.

La soluzione o la soluzione al problema della restrizione open_basedir è disabilitare del tutto la protezione PHP open_basedir o escludere la protezione per determinati account utente privilegiati o consentire l'accesso alla directory aggiuntiva per gli script PHP.

Se stai utilizzando cPanel WebHost Manager (WHM), puoi facilmente disabilitare la protezione PHP open_basedir o escludere determinati utenti dalla protezione con WHM. Basta andare su "Modifica sicurezza" nella sezione "Sicurezza", quindi selezionare il collegamento "Configura" per "Php open_basedir Tweak". Al suo interno, puoi abilitare o disabilitare php open_basedir Protection, oppure escludere e includere host dalla protezione.

Se stai utilizzando il pannello di controllo dell'hosting Plesk, potresti dover modificare manualmente il file di configurazione Apache di vhost.conf e vhost_ssl.conf e aggiungere o modificare le seguenti righe php_admin_value open_basedir alle seguenti:

<Directory /full/path/to/the/directory/httpdocs>
php_admin_value open_basedir none
</Directory>

<Directory /full/path/to/the/directory/httpdocs>
php_admin_value open_basedir /full/path/to/dir:/full/path/to/directory/httpdocs:/tmp
</Directory>

Nota:per gli host SSL nel file vhost_ssl.conf, il percorso della directory terminerà con "httpsdocs" anziché "httpdocs".

I percorsi (sopra è solo un esempio e da sostituire con il percorso reale) che dietro open_basedir sono le directory che hanno specificamente consentito l'accesso agli script PHP nell'account del dominio vhost, quindi puoi aggiungere più directory a cui i file sono stati archiviati e necessari da aprire con PHP, ciascuno separato da un colore “:”. Ma fai attenzione perché potrebbe esporre il tuo sistema a frodi alla sicurezza.

Una volta terminato, esegui il comando seguente per rendere effettive le modifiche, quindi riavvia il server Web Apache httpd (apache2ctl restart o httpd restart):

$PRODUCT_ROOT_D/admin/sbin/websrvmng -v -a

Se devi modificare manualmente il file di configurazione di Apache per disabilitare la protezione open_basedir di PHP, apri semplicemente il file httpd.conf e cerca le righe che iniziano con i seguenti caratteri:

php_admin_value open_basedir …..

Sostituisci l'intera riga sotto l'host virtuale per l'account utente di dominio di cui desideri disabilitare la protezione con la seguente riga per disabilitarla:

php_admin_value open_basedir none

Puoi anche scegliere di consentire ai tuoi script PHP di accedere a directory aggiuntive senza disabilitare la protezione. È possibile aggiungere ulteriori directory alla riga, separate da un colore “:”. Ad esempio, per aggiungere /nuova_directory all'elenco di autorizzazioni:

php_admin_value open_basedir "/home/user_account/:/usr/lib/php:/usr/local/lib/php:/tmp"
php_admin_value open_basedir "/home/user_account/:/usr/lib/php:/usr/local/lib/php:/tmp:/new_directory"

Riavvia l'Apache al termine della modifica. Si noti che la limitazione dell'elenco delle directory consentite sopra è in realtà un prefisso, non un nome di directory. Ciò significa che "open_basedir =/dir/incl" consente anche l'accesso a "/dir/include" e "/dir/incls" se esistono. Quando vuoi limitare l'accesso solo alla directory specificata, termina con una barra. Ad esempio:"open_basedir =/dir/incl/".


cPanel
  1. Gestione degli errori negli script Bash

  2. Chiamata alla funzione non definita simplexml_load_file() – Errore PHP [risolto]

  3. Errore irreversibile PHP:chiamata a funzione non definita Thesql_connect()?

  4. Avvertimento:file_exists() [function.file-exists]:restrizione open_basedir in vigore.

  5. Come attivare la registrazione degli errori PHP

Come eseguire script tramite cron job

Come abilitare la segnalazione degli errori PHP in cPanel?

Abilita la registrazione degli errori PHP sul Web e sull'hosting dei rivenditori

Come si attivano i messaggi di errore PHP su cPanel?

Come aumentare la dimensione massima del file di caricamento / i valori PHP su cPanel?

Come creare un accesso di errore PHP in cPanel