В рамках подготовки к моему переездом на сервере позже, я использую этот код (PHP), чтобы создать новый каталог, в котором будут храниться файлы пользователя:Разрешения localhost с php mkdir()?
function createNewUserFolder($newUserName)
{
$siteRoot = "http://" . $_SERVER['HTTP_HOST'] . "/myWebsite/";
$newUserSubfolder = $siteRoot . $newUserName;
if (!mkdir($newUserSubfolder, 0755))
{
echo "PROBLEM...";
}
}
Я попытался 0644 разрешения не дало никаких результатов - Когда это выполняется, я получаю «ПРОБЛЕМУ ...». Я проверяю строку, содержащую полный путь, и это правильно - «http: // localhost/myWebsite/myNewUserSubfolder».
Так что я подозреваю, что проблема «http: // localhost/myWebsite /» в этой строке является проблемой. Но я не понимаю, почему - в конце концов, это PHP-код, запущенный на моем веб-сервере, поэтому почему мой php-код не может создать папку на моем веб-сервере?
Каков результат 'ls -al' на $ siteRoot? И что вызвал пользователь веб-сервера? (Попробуйте echo 'whoami') – chelmertz
попробуйте использовать реальный каталог ex:/var/www/myWebsite/с mkdir вместо http: // и посмотреть, работает ли это –
ls -l не поддерживается в моей коробке Windows, а whoami из командной строки дает имя пользователя, которое я создал, когда я настраивал свою учетную запись пользователя в этом окне Windows (Vista). Кроме того, я попробую полностью пройти путь, но мой вопрос - * должен * я могу использовать http с/localhost/myWebsite с моим вызовом mkdir() - если нет, то почему нет --- это слепое место для меня. Приведенный выше код мог бы работать как на моих серверах разработки, так и на производстве, если я это понял. – wantTheBest