Eclipse PDT, как мне получить файлы на сервере?

Я пытаюсь узнать, как использовать Eclipse Helios PDT, но я не понимаю, как можно получить файлы из своей рабочей области на сервер. Документация по PDT очень скудна.

Моя рабочая область находится в / home / bob / workspace, а мой локальный веб-каталог разработчика - / home / bob / public_html.

Если я настрою конфигурацию запуска для моего проекта php, я вижу, где я могу настроить путь к серверу и т. Д., Но я не вижу очевидного способа автоматического копирования файлов в мой веб-корневой каталог для фактического запуска проекта. Если я нажму кнопку «Выполнить», я просто получу 404 в браузере.

С помощью NetBeans, например, вы можете настроить проект PHP для копирования при сохранении на локальный веб-сервер, FTP на сервер и т. Д. Разве PDT не имеет каких-либо аналогичных функций?


person Bob    schedule 19.09.2010    source источник


Ответы (6)


Я никогда не использовал систему контроля версий для отправки файлов на рабочий сервер, но это звучит интересно. Что я делаю, так это использую ANT.

Я обнаружил, что, располагая рабочее пространство непосредственно на сервере, создается множество скрытых файлов, и если вы используете систему управления версиями, эти скрытые файлы могут находиться в каждом каталоге. Я не чувствовал себя правильным просто копировать и вставлять их на свой рабочий сервер ...

Итак: я настроил свое рабочее пространство так, чтобы код был в одном месте, а не на моем локальном сервере. Когда я готов к тестированию, я запускаю ant-скрипт. Этот сценарий сбрасывает все файлы, которые мне нужны, на сервер. Затем, если я чувствую, что все готово, я просто перемещаю эти файлы в рабочую среду (ftp или что-то еще).

Вот мой сценарий муравья для местных:

<?xml version="1.0" encoding="UTF-8"?>

<project default="init" basedir=".">

<target name="init">
    <echo message="Copying files to C:/Sandbox/xampp/htdocs"/>
    <sync todir="C:/Sandbox/xampp/htdocs">
        <fileset dir=".">
            <include name="**/*.html" />
            <include name="**/*.htm" />
            <include name="**/*.php" />
            <include name="**/*.css" />
            <include name="**/*.js" />
            <include name="**/*.jpg" />
            <include name="**/*.png" />
            <include name="**/*.gif" />
            <exclude name="env.php"/>
        </fileset> 
    </sync>
</target>

</project>

Вы заметите, что я исключаю файл с именем "env.php". Этот файл содержит конкретный код среды. Такие вещи, как имена баз данных и тому подобное, которые различаются между локальными и производственными.

Я понимаю, что это еще один шаг, чем просто нажатие ctrl-s, затем F5, чтобы увидеть изменения локально, но это значительно упрощает развертывание в других местах.

Развлекайся!

person Chris    schedule 15.02.2011

Я бы порекомендовал вам не настраивать FTP / SFTP, а вместо этого использовать систему управления версиями для отправки файлов на рабочий сервер: Git / GitHub, Subversion / Google Code и т. Д. Вы также получите дополнительное преимущество в виде возможности для log / diff / revert, и вы избавитесь от соблазна быстро взломать сервер, который не отражается в ваших локальных файлах.

person Jeff Standen    schedule 20.09.2010

Вы можете подумать о том, чтобы вместо того, чтобы хранить локальный проект в рабочей области Eclipse, разместить проект непосредственно «на сервере» - например, «Подключите сетевой диск» к серверу, на котором находятся файлы (если это unix-сервер, и вы программируете в Windows, тогда используйте Samba на unix-сервере). Таким образом, когда вы сохраняете изменение, вы фактически изменяете его непосредственно на сервере, и, следовательно, изменение будет отражено немедленно, когда вы обновите свой браузер.

person stolsvik    schedule 20.12.2010

Как насчет развертывания с обратным вытягиванием?

После фиксации в системе управления версиями (например, svn) на сервере вы можете выполнить проверку / обновление svn, чтобы развернуть код на месте с вашего svn-сервера.

Если у вас нет проблем с сохранением некоторых учетных данных svn только для чтения, у вас может быть даже какая-то страница развертывания .php, которая выполняет команду svn update

Это, очевидно, излишек для локальной среды разработки (просто укажите apache в свою рабочую область), но это гарантирует, что вы должны зафиксировать все в svn перед развертыванием (что дает дополнительное преимущество регистрации каждого изменения на веб-сайте).

person Oliver O'Neill    schedule 20.02.2011

Еще один совет для быстрого и грязного решения: используйте символическую ссылку в каталоге документов веб-сервера по умолчанию, которая будет указывать на каталог вашей рабочей области.

Это нормально (с моей точки зрения) только для среды разработки.

Чтобы создать символическую ссылку: ln -s / home / bob / workspace / your_project_name / home / bob / your_project_name

Также убедитесь, что для веб-сервера существуют разрешения на чтение и выполнение для всех элементов пути. Вы можете настроить разрешения с помощью chmod.

person Zsolt Normann    schedule 07.03.2011

Боб, если вы установите плагин Aptana, перейдите в режим просмотра => Studio => App Explorer. Вы увидите кнопку в виде прямоугольника. Если вы нажмете эту кнопку, появится кнопка мастера веб-развертывания. Вы можете использовать это для автоматической загрузки.

person Brian F Leighty    schedule 17.10.2014